python - opencv error : error while displaying rectangle -


i m not able rectify error. m following official opencv python tutorial. m passing video here , doing meanshift.

source: https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_video/py_meanshift/py_meanshift.html#meanshift

below code:

import numpy np import cv2  cap = cv2.videocapture("slow.mp4")  # take first frame of video ret,frame = cap.read()  # setup initial location of window r,h,c,w = 250,90,400,125  # hardcoded values track_window = (c,r,w,h)  # set roi tracking 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)  # setup termination criteria, either 10 iteration or move atleast 1 pt 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)          # apply meanshift new location         ret, track_window = cv2.meanshift(dst, track_window, term_crit)          # draw on image         x,y,w,h = track_window         img2 = cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)         cv2.imshow('img2',img2)          k = cv2.waitkey(60) & 0xff         if k == 27:             break         else:             cv2.imwrite(chr(k)+".jpg",img2)       else:          break  cv2.destroyallwindows() cap.release()         cv2.imshow('img2',img2) 

this line showing error. execution stops @ line. have done debugging too.

error following :

opencv error: assertion failed (size.width>0 && size.height>0) in imshow, file /build/buildd/opencv-2.4.8+dfsg1/modules/highgui/src/window.cpp, line 269 traceback (most recent call last):   file "programs/test14.py", line 36, in <module>    cv2.imshow('img2',img2) cv2.error: /build/buildd/opencv-2.4.8+dfsg1/modules/highgui/src/window.cpp:269: error: (-215) size.width>0 && size.height>0 in function imshow 

in opencv2.4.x rectangle function return none - it's modify image in-place. use opencv3 or modify code:

cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2) cv2.imshow('img2',frame) 

instead of

img2 = cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2) cv2.imshow('img2',img2) 

Comments

Popular posts from this blog

php - Invalid Cofiguration - yii\base\InvalidConfigException - Yii2 -

How to show in django cms breadcrumbs full path? -

ruby on rails - npm error: tunneling socket could not be established, cause=connect ETIMEDOUT -