2017-08-22 3 views
-3

ウェブカムからビデオフィードのサークルを検出したいのですが、ハフサークル変換機能を使用しようとしましたが、「8ビットのシングルチャンネル画像しか使用できません」というエラーが表示されます。私はこのコードを改良... または私が円を検出することが可能な任意の他の方法を取得したいと思いopencvの動画フィードからサークルを検出するにはどうすればよいですか?

import cv2 
import numpy as np 

cap = cv2.VideoCapture(0) 


while True: 
    _,frame=cap.read() 

    hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV) 
    circles = cv2.HoughCircles(frame,cv2.HOUGH_GRADIENT,1,20,param1=50,param2=30,minRadius=0,maxRadius=0) 
    circles = np.uint16(np.around(circles)) 
    for i in circles[0,:]: 
     # draw the outer circle 
     cv2.circle(hsv,(i[0],i[1]),i[2],(0,255,0),2) 
     # draw the center of the circle 
     cv2.circle(hsv,(i[0],i[1]),2,(0,0,255),3) 

cv2.waitKey(0) 
cv2.destroyAllWindows() 

これは私のコードでした。

+0

あなたが試したことと何が問題になったかについて、より具体的に説明してください。 –

+0

ようこそスタックオーバーフロー! ['cvtColor'](http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor)を使用して、入力画像を_grayscale_に変換する必要があります。 –

+0

イメージデータが8ビットの数字にタイプキャストされていることを確認してください。 –

答えて

1

フレームを変換するには、cvtColor()を使用する必要があります。

関連する問題