これは私にとって最初のPythonプロジェクトです。openCVとHoughCircles、Pythonで無力に失われました
私はこの黒い円を検出しようとしていますhere。余りにも難しいはずはありませんが、何らかの理由で、引数に応じてどこでも0円または約500円を取得できます。しかし、中盤はありません。私は数時間の議論を試してみたように感じるが、まったく成功しない。 HoughCirclesと黒または白の画像を使用して問題がありますか?タスクは人間の目にとっては単純だと思われますが、何らかの理由でコンピュータにとってこれは困難ですか?ここで
は私の現在のコードです:
import numpy as np
import cv2
image = cv2.imread('temp.png')
output = image.copy()
blurred = cv2.blur(image,(10,10))
gray = cv2.cvtColor(blurred, cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1.5, 20, 100, 600, 10, 100)
if circles is not None:
circles = np.round(circles[0, :]).astype("int")
print len(circles)
for (x, y, r) in circles:
cv2.circle(output, (x, y), r, (0, 255, 0), 4)
cv2.rectangle(output, (x - 5, y - 5), (x + 5, y + 5), (0, 128, 255), -1)
show the output image
cv2.imshow("output", np.hstack([output]))
cv2.waitKey(0)
ありがとうございました。 最初のコメントの後に編集されます。
あなたは 'gray'画像上に円を描くようにしようとしています。元のカラー画像に描画してみてください。 –
また、入力画像のコピーである 'output'が表示されています.... –
残念ながら、変更がどのように処理された画像に影響を与えているのかを確認するためにコードを変更しています。 まだプリントされていないlen(サークル)は1になりませんでした。 – OlliJJJ