Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonでOpenCVを使用して画像内の円を検索する


OpenCVプラットフォームは、Python用のcv2ライブラリを提供します。これは、コンピュータビジョンで役立つさまざまな形状分析に使用できます。この記事では、OpenCVを使用して円の形状を識別します。そのために、cv2.HoughCircles()関数を使用します。ハフ変換を使用してグレースケール画像内の円を検索します。以下の例では、入力として画像を取得します。次に、そのコピーを作成し、この変換関数を適用して、出力内の円を識別します。

構文

cv2.HoughCircles(image, method, dp, minDist)
Where
Image is the image file converted to grey scale
Method is the algorithm used to detct the circles.
Dp is the inverse ratio of the accumulator resolution to the image resolution.
minDist is the Minimum distance between the center coordinates of detected circles.

以下の例では、以下の画像を入力画像として使用しています。次に、以下のプログラムを実行してサークルを取得します。

PythonでOpenCVを使用して画像内の円を検索する

以下のプログラムは、画像ファイル内の円の存在を検出します。円が存在する場合は、それが強調表示されます。

import cv2
import numpy as np
image = cv2.imread('circle_ellipse_2.JPG')
output = image.copy()
img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Find circles
circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1.3, 100)
# If some circle is found
if circles is not None:
   # Get the (x, y, r) as integers
   circles = np.round(circles[0, :]).astype("int")
   print(circles)
   # loop over the circles
   for (x, y, r) in circles:
      cv2.circle(output, (x, y), r, (0, 255, 0), 2)
# show the output image
cv2.imshow("circle",output)
cv2.waitKey(0)

上記のコードを実行すると、次の結果が得られます-

出力

[[93 98 84]]

そして、以下の出力を示す図が表示されます。

PythonでOpenCVを使用して画像内の円を検索する


  1. PythonでOpenCVを使用したテンプレートマッチング

    テンプレートマッチングは、パッチまたはテンプレートを実際の画像からマッチングできる手法です。これは基本的にパターンマッチングメカニズムです。 PythonにはOpenCVモジュールがあります。 openCVを使用すると、一致するものを簡単に見つけることができます。したがって、この問題では、OpenVCテンプレートマッチング手法が使用されます。 OpenCV機能を使用するには、 pipを使用してダウンロードする必要があります 。 sudo pip3 install opencv-python テンプレートマッチングタスクには、精度係数があります。この係数はしきい値と呼ばれます。一例とし

  2. PythonOpenCvモジュールを使用したヒストグラムの等化

    これは、画像のヒストグラムを使用してコントラスト調整を行う画像処理の方法です。 実際、この方法は通常、多くの画像のグローバルコントラストを増加させます。特に、画像の使用可能なデータが近いコントラスト値で表される場合、この調整により、強度をヒストグラム上でより適切に分散でき、ローカルコントラストの低い領域が可能になります。より高いコントラストを得る。 OpenCVにはこれを行う関数cv2.equalizeHist()があり、その入力は単なるグレースケール画像であり、出力はヒストグラム均等化された画像です。 この手法は、画像のヒストグラムが特定の領域に限定されている場合に適しています。強度の