ChatGPTでプログラム生成⑨ Python コーナー検出

ChatGPTでプログラム生成します。環境依存はありませんがWindowsで実行します。Ubuntuの例は既に紹介済みです。

ChatGPTへ質問

以下の質問をChatGPTへ行います。

Pythonでコーナー検出を行いたい

この一つの質問を行うだけでソースコードが生成されます。

ChatGPTが生成したソースコード

以降に、ChatGPTが生成したソースコードを示します。

import cv2
import numpy as np

# 画像を読み込みます
image = cv2.imread('example.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Harrisコーナー検出器のパラメータを設定します
block_size = 2
aperture_size = 3
k = 0.04

# Harrisコーナー検出器を適用します
dst = cv2.cornerHarris(gray, block_size, aperture_size, k)

# コーナーを強調表示します
image[dst > 0.01 * dst.max()] = [0, 0, 255]

# 結果を表示します
cv2.imshow('Harris Corners', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

これをdtctcnrs.pyと名付け、エンコードUTF-8で格納します。漢字が含まれいるためエディタが勝手にSift-JISなどで格納するとPythonがエラーメッセージを表示する場合があります。UbuntuiOSなどでは気にする必要は少ないですが、Windowsの従来のエディタなどはSift-JISがデフォルトのものがあります。

実行

このプログラムを実行します。

python dtctcnrs.py


ChatGPTを利用すれば、たった一行の質問でコーナー検出のプログラムが生成されます。

質問を変更

質問を以下のように変更してみましょう。

Pythonでコーナー検出し〇で表示したい

質問変更後にChatGPTが生成したソースコード

以降に、ChatGPTが生成したソースコードを示します。

import cv2
import numpy as np

# 画像を読み込む
image = cv2.imread('example.jpg')

# グレースケールに変換
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Shi-Tomasiコーナー検出アルゴリズムを適用
corners = cv2.goodFeaturesToTrack(gray, maxCorners=100, qualityLevel=0.01, minDistance=10)

# コーナーを整数に変換
corners = np.int0(corners)

# 元の画像にコーナーを描画
for corner in corners:
    x, y = corner.ravel()
    cv2.circle(image, (x, y), 5, (0, 255, 0), 1)  # コーナーを緑の円で描画

# 画像を表示
cv2.imshow('Corners', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

実行

このプログラムを実行します。

すごいなChatGPT!(ChatGPT 3.5を利用しました。)