在利用opencv读取视频进行处理时,报错如下:
gray =cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.error:..\..\..\opencv-3.1.0\modules\imgproc\src\color.cpp:7456: error: (-215) scn ==3 || scn == 4 in function cv::ipp_cvtColor
我的原来处理的代码没有对视频是否处理完成做判断,因此后面加上对读取视频的帧后加上对是否读取完成的判断,问题解决。
附上代码:
def readVideo():
#cap = cv2.VideoCapture("fenlei.mp4")
#cap = cv2.VideoCapture("lisaru.mp4")
cap = cv2.VideoCapture("susuan.mp4")
while(cap.isOpened()):
ret , frame = cap.read()
#这里必须加上判断视频是否读取结束的判断,否则播放到最后一帧的时候出现问题了
if ret == True:
#gray = cv2.cvtColor(frame , cv2.COLOR_BGR2GRAY)
#gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
#cv2.imshow("frame" , gray)
cv2.imshow("frame" , frame)
else:
break
#因为视频是10帧每秒,因此每一帧等待100ms
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()