ChatGPTでプログラム生成します。画像をFFTし周波数特性を観察するプログラムとIFFTし、元に戻ることを確認するプログラムをChatGPTを利用して生成します。
ChatGPTへ質問
以下の質問をChatGPTへ行います。
この一つの質問を行うだけでソースコードが生成されます。ChatGPTが生成したソースコード
以降に、ChatGPTが生成したソースコードを示します。
import cv2 import numpy as np from matplotlib import pyplot as plt # 画像をグレースケールで読み込む image = cv2.imread('input_image.jpg', 0) # 2次元FFTを実行する f = np.fft.fft2(image) # 結果のシフト fshift = np.fft.fftshift(f) # 絶対値を取り、対数変換する(スペクトルの表示のため) magnitude_spectrum = 20 * np.log(np.abs(fshift)) # オリジナル画像とFFT結果の表示 plt.subplot(121), plt.imshow(image, cmap='gray') plt.title('Input Image'), plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(magnitude_spectrum, cmap='gray') plt.title('FFT Result'), plt.xticks([]), plt.yticks([]) plt.show()
質問を変更
質問を以下のように変更してみましょう。
質問変更後にChatGPTが生成したソースコード
以降に、ChatGPTが生成したソースコードを示します。
import cv2 import numpy as np from matplotlib import pyplot as plt # 画像をグレースケールで読み込む image = cv2.imread('input_image.jpg', 0) # 2次元FFTを実行する f = np.fft.fft2(image) # 結果のシフト fshift = np.fft.fftshift(f) # 逆シフト f_ishift = np.fft.ifftshift(fshift) # 逆FFTを実行する img_back = np.fft.ifft2(f_ishift) img_back = np.abs(img_back) # オリジナル画像と復元された画像の表示 plt.subplot(121), plt.imshow(image, cmap='gray') plt.title('Input Image'), plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(img_back, cmap='gray') plt.title('Reconstructed Image'), plt.xticks([]), plt.yticks([]) plt.show()
実行
このプログラムを実行します。
すごいなChatGPT!(ChatGPT 3.5を利用しました。)