我的代码一开始报错
cv2.error: OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
网上说产生错误原因是文件路径有错,经过检查,我的文件路径无误
报错是
gray_lwpCV = cv2.cvtColor(frame_lwpCV,cv2.COLOR_BGR2GRAY)这一行
原代码是这样的:
while True:
# 读取视频流
grabbed, frame_lwpCV = camera.read()
# 对帧进行预处理,>>转灰度图>>高斯滤波(降噪:摄像头震动、光照变化)。
gray_lwpCV = cv2.cvtColor(frame_lwpCV, cv2.COLOR_BGR2GRAY)
gray_lwpCV = cv2.GaussianBlur(gray_lwpCV, (21, 21), 0)
后来想明白了,读取最后一帧后没有跳出循环,没有数据,所以
frame_lwpCV为空值,所以cv2.cvtColor()函数报错
所以只要加入判断是不是读取完了的代码即可
修改后代码为:
while True:
# 读取视频流
grabbed, frame_lwpCV = camera.read()
if grabbed == False: # 如果是最后一帧这个值为False
break
# 对帧进行预处理,>>转灰度图>>高斯滤波(降噪:摄像头震动、光照变化)。
gray_lwpCV = cv2.cvtColor(frame_lwpCV, cv2.COLOR_BGR2GRAY)
gray_lwpCV = cv2.GaussianBlur(gray_lwpCV, (21, 21), 0)
运行正确不报错