Pythonでopencvを使用して円形を認識する方法は何ですか?
OpenCVライブラリを使用して円を認識するには、以下の手順を実行します。
- OpenCVライブラリをインポートする。
import cv2
import numpy as np
- 画像を読み込んでグレースケール画像に変換する。
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
- 画像の前処理を行うために、ガウスぼかしを使ってノイズを除去します。
blur = cv2.GaussianBlur(gray, (5, 5), 0)
- 画像内の円を検出するために、ハフ円変換を使用します。
circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
param1とparam2は、ホフ円変換のパラメータです。画像の特性に応じて、これらのパラメータを調整して円の検出結果をより良くする必要があります。
- 画像の中で検出された円を巡回して、円を描画します。
if circles is not None:
circles = np.uint16(np.around(circles))
for circle in circles[0, :]:
center = (circle[0], circle[1])
radius = circle[2]
cv2.circle(image, center, radius, (0, 255, 0), 2)
- 加工された画像を表示します。
cv2.imshow('Circle Detection', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
OpenCVを使用して円を検出する基本的な手順はこれです。画像の特性や要件に合わせて、いくつかのパラメータを調整したり、追加の画像処理を行ったりする必要があるかもしれません。