ChatGPTでプログラム生成します。生成するプログラムは、PythonとOpenCVを使って画像へフィルターを実施します。環境依存はありませんが、今回はWindowsで実行します。Ubuntuの例は既に紹介済みです。
ChatGPTへ質問
以下の質問をChatGPTへ行います。
Pythonでデジタルフィルター、たとえばBlur、GaussianBlur、Laplacian、Sobel、Canny、Dilate、Erodeフィルターを実装してください。表示と結果の格納も行いたいです。
この一つの質問を行うだけでソースコードが生成されます。ChatGPTが生成したソースコード
以降に、ChatGPTが生成したソースコードを示します。
import cv2 import numpy as np # 画像を読み込む img = cv2.imread('input_image.jpg') # Blurフィルターを適用 blur = cv2.blur(img, (5, 5)) # 結果の表示と保存 cv2.imshow('Blur', blur) cv2.imwrite('blur_result.jpg', blur) # GaussianBlurフィルターを適用 gaussian_blur = cv2.GaussianBlur(img, (5, 5), 0) # 結果の表示と保存 cv2.imshow('Gaussian Blur', gaussian_blur) cv2.imwrite('gaussian_blur_result.jpg', gaussian_blur) # Laplacianフィルターを適用 laplacian = cv2.Laplacian(img, cv2.CV_64F) # 結果の表示と保存 cv2.imshow('Laplacian', laplacian) cv2.imwrite('laplacian_result.jpg', laplacian) # Sobelフィルターを適用 sobel_x = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=5) sobel_y = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=5) # 結果の表示と保存 cv2.imshow('Sobel X', sobel_x) cv2.imshow('Sobel Y', sobel_y) cv2.imwrite('sobel_x_result.jpg', sobel_x) cv2.imwrite('sobel_y_result.jpg', sobel_y) # Cannyエッジ検出フィルターを適用 canny = cv2.Canny(img, 100, 200) # 結果の表示と保存 cv2.imshow('Canny', canny) cv2.imwrite('canny_result.jpg', canny) # Dilateフィルターを適用 kernel = np.ones((5,5),np.uint8) dilate = cv2.dilate(img, kernel, iterations=1) # 結果の表示と保存 cv2.imshow('Dilate', dilate) cv2.imwrite('dilate_result.jpg', dilate) # Erodeフィルターを適用 erode = cv2.erode(img, kernel, iterations=1) # 結果の表示と保存 cv2.imshow('Erode', erode) cv2.imwrite('erode_result.jpg', erode) # キー入力を待つ cv2.waitKey(0) cv2.destroyAllWindows()
これをtest.pyと名付け格納します。これだけでプログラムは完成です。
実行
このプログラムを実行します。
$ python test.py
ChatGPTを利用すれば、たった一行の質問で、簡単な画像処理のプログラムが生成されます。
すごいなChatGPT!(ChatGPT 3.5を利用しました。)