###前提・実現したいこと
opencvを使って、usbカメラからの映像で円検出を行いたい。
###発生している問題・エラーメッセージ
jpg画像を直接読み込んで実行した場合には問題なかったが、動画用に書き換えたら以下のエラーが出た。
該当場所は下記のソースコードにコメントで示しています。
AttributeError: 'NoneType' object has no attribute 'rint'
###該当のソースコード
python
1import cv2 2import numpy as np 3 4cap=cv2.VideoCapture(0) 5while cap.isOpened(): 6 ret,frame=cap.read() 7 frame=cv2.GaussianBlur(frame,(7,7),0) 8 gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) 9 hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV) 10 11 circles=cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT,1,100,150,50) 12 circles=np.uint16(np.around(circles)) #ここでエラーが発生 13 14 cv2.namedWindow('camera',cv2.WINDOW_NORMAL) 15 cv2.imshow('camera',frame) 16 17 if cv2.waitKey(1)==27: 18 break; 19 20cap.release() 21cv2.destroyAllWindows()
###試したこと
np.around(circles,0)としてみたり、np.round()の方を試したりしたが、変わらなかった。
###補足情報(言語/FW/ツール等のバージョンなど)
win10 64bit環境でAnaconda2を使って実行した。
なお、問題なく実行できたjpg画像の方はは以下のコードです。
python
1import cv2 2import numpy as np 3 4img=cv2.imread('sample.jpg',1) 5 6img=cv2.GaussianBlur(img,(7,7),0) 7gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 8 9circles=cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT,1,100,150,50) 10circles=np.uint16(np.around(circles)) 11 12cv2.namedWindow('result',cv2.WINDOW_NORMAL) 13cv2.imshow('result',img) 14cv2.waitKey(0) 15cv2.destroyAllWindows()

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/29 09:02
2017/01/29 10:05
2017/01/30 10:37 編集
2017/01/30 12:38
2017/01/30 14:09