Pythonでopencvを使用して円形を認識する方法は何ですか?

OpenCVライブラリを使用して円を認識するには、以下の手順を実行します。

  1. OpenCVライブラリをインポートする。
import cv2
import numpy as np
  1. 画像を読み込んでグレースケール画像に変換する。
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
  1. 画像の前処理を行うために、ガウスぼかしを使ってノイズを除去します。
blur = cv2.GaussianBlur(gray, (5, 5), 0)
  1. 画像内の円を検出するために、ハフ円変換を使用します。
circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)

param1とparam2は、ホフ円変換のパラメータです。画像の特性に応じて、これらのパラメータを調整して円の検出結果をより良くする必要があります。

  1. 画像の中で検出された円を巡回して、円を描画します。
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)
  1. 加工された画像を表示します。
cv2.imshow('Circle Detection', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCVを使用して円を検出する基本的な手順はこれです。画像の特性や要件に合わせて、いくつかのパラメータを調整したり、追加の画像処理を行ったりする必要があるかもしれません。

bannerAds