2017-09-16 12 views
1

をジャンプさ:私が検出した場合にサークル検出は、私が円を検出するために、次のコードを使用してい

gray = cv2.GaussianBlur(gray, (5, 5), 0); 
gray = cv2.medianBlur(gray, 5) 

kernel = np.ones((2, 2), np.uint8) 
gray = cv2.erode(gray, kernel, iterations=1) 

gray = cv2.dilate(gray, kernel, iterations=1) 
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 200, 
          param1=100, param2=50, minRadius=0, maxRadius=150) 


if circles is not None: 
    # Convert the (x,y) coordinate and radius of the circles 
    circles = np.round(circles[0, :]).astype("int") 

    # Loop over the (x,y) coordinate and radius of the circles 
    for (x, y, r) in circles: 
     # Draw the circle in the output 
     cv2.circle(fancy_frame, (x+x1, y+y1), r, (0, 255, 0), 4) 

しかし、円がジャンプしています。どうすればこれを整理できますか?それを検出するためのhaarまたはsvmはありますか?

これは私が取得しています出力されます:あなたのコードは正常に見える、最も可能性の高いあなただけHoughCircles parametersを微調整する必要がリアルタイムの映像で

Output

を私はすべての円を検出したい

+0

あなたの結果と予想される結果を投稿してください。 – zindarod

+0

更新された質問を確認してください – user1241241

+0

カルマンフィルタなどのトラッキングアルゴリズムを適用する必要があります。 – eyllanesc

答えて

1

最初にdpパラメータを下げることによって、より多くの検出が可能になります。私はOpenCVのサンプルからhoughcircles.pyを実行したイメージ上のフォルダと、それは円の残りの大部分を検出します。実行するのは難しいかもしれないので、円のため

$ python houghcircles.py your_image.png 

result

ハフ検出は非常に計算重いですこれはリアルタイムで実行されます。あなたのイメージ上の "サークル"も完璧ではありません。アルゴリズムにとっては簡単ではありません。これらの機能を検出する代わりに、ニューラルネットワークをトレーニングすることを検討してください。

関連する問題