모션 감지 코드를 사용해야하는데 다음 코드를 사용합니다 : http://www.steinm.com/blog/motion-detection-webcam-python-opencv-differential-images/. 다음은 코드입니다 :cv2.cvtColor 오류입니다. 벌레 야?
import cv2
def diffImg(t0, t1, t2):
d1 = cv2.absdiff(t2, t1)
d2 = cv2.absdiff(t1, t0)
return cv2.bitwise_and(d1, d2)
cam = cv2.VideoCapture(0)
winName = "Movement Indicator"
cv2.namedWindow(winName, cv2.CV_WINDOW_AUTOSIZE)
# Read three images first:
t_minus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
t = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
t_plus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
while True:
cv2.imshow(winName, diffImg(t_minus, t, t_plus))
#diff = diffImg(t_minus, t, t_plus)
# Read next image
t_minus = t
t = t_plus
t_plus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
#cv2.imshow(winName, diff)
key = cv2.waitKey(10)
if key == 27:
cv2.destroyWindow(winName)
break
print "Goodbye"
처음에는이 원활하게 실행,하지만 지금, 그것은 나에게 오류 제공 : 내가 유래의 다양한 솔루션을 찾았지만 여전히 오류가 발생
cv2.error: ........\opencv\modules\imgproc\src\color.cpp:3737: error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
합니다. 소스에 올바른 색상 형식이 없기 때문에 오류가 발생했다고합니다 (코드에서 세 번 째 인수가 필요함). 오류가 발생한 이유를 누구나 들려 줄 수 있습니까? 아니면 그 opencv 버그와 거기에 대한 해결책은 없나요?
일부 블로그에 대한 링크가 아닌 * 여기 * 사용 된 코드를 붙여주십시오. 또한 문제가되는 이미지를 추가하십시오. – berak
실수로 죄송합니다. 나는 이미 내 질문을 편집했다. 이미지는 카메라에서 가져옵니다 - 카메라에서 실시간으로 캡처합니다. 너 나 좀 도와 줄 수있어? – rizkie
cam.read()는 다음을 반환합니다. err, img. 오류 값을 무시하지 않아야합니다. 당신은 아마도 어떤 종류의 딸꾹질을 붙잡고, 일시적으로 프레임을 전달할 수 없습니다. (나는 의심 스럽다. img는 단지 비어있다. *) – berak