Python OpenCV error: (-215) size.width>0 && size.height>0 in function imshow -
i run program , returns me error message:
error: (-215) size.width>0 && size.height>0 in function imshow
how can solve? source code:
import numpy np import cv2 cap = cv2.videocapture(0) ret,frame = cap.read() r,h,c,w = 250,90,400,125 track_window = (c,r,w,h) roi = frame[r:r+h, c:c+w] hsv_roi = cv2.cvtcolor(frame, cv2.color_bgr2hsv) mask = cv2.inrange(hsv_roi, np.array((0., 60.,32.)), np.array((180.,255.,255.))) roi_hist = cv2.calchist([hsv_roi],[0],mask,[180],[0,180]) cv2.normalize(roi_hist,roi_hist,0,255,cv2.norm_minmax) term_crit = ( cv2.term_criteria_eps | cv2.term_criteria_count, 10, 1 ) while(1): ret ,frame = cap.read() if ret == true: hsv = cv2.cvtcolor(frame, cv2.color_bgr2hsv) dst = cv2.calcbackproject([hsv],[0],roi_hist,[0,180],1) ret, track_window = cv2.meanshift(dst, track_window, term_crit) x,y,w,h = track_window img2 = cv2.rectangle(frame, (x,y), (x+w,y+h), 255,2) cv2.imshow('rilevamento',img2) k = cv2.waitkey(60) & 0xff if k == 27: break else: cv2.imwrite(chr(k)+".jpg",img2) else: break cv2.destroyallwindows() cap.release()
according opencv documentation cv2.rectangle
draws rectangle on image gave in parameter , doesn't return anything.
then need change line :
cv2.imshow('rilevamento',img2)
to
cv2.imshow('rilevamento', frame)
hope helps.
Comments
Post a Comment