ChatGPTでプログラム生成⑧ Python

ChatGPTでプログラム生成します。生成するプログラムは、PythonOpenCVを使って画像へフィルターを実施します。環境依存はありませんが、今回は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を利用しました。)