问题1:
用opencv出现这样的错误:cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
二、原因及解决方案 可能错误如下,欢迎补充:
图片路径形式书写错误: 错误的形式:C:\Users\Desktop\test\ 正确的应该:C:/Users/Desktop/test/
注意:在程序中斜杠‘\’有转义字符含义
图片路径少写了一个斜杠(图片存放在test文件夹中) 错误:C:/Users/Desktop/test 正确:C:/Users/Desktop/test/
注意:千千万万不要忘了最后一个斜杠,不然读取的就变成了test这个文件夹而不是里面的图片了,因为一个不小心,我苦恼了两天,还以为是opencv的锅,尝试了无数种解决方案,仿佛一个白痴!!!
图片的格式不对! 注意:查看你的程序是否对要求的大小或者类型有所要求。
图片的数量不一致! 注意:查看你程序中是否有预先输入图片数量的参数,检查文件夹中图片数量和参数是否一致。
中文问题 注意:路径中、文件夹名称、图片名称都不要包含中文!.(编程中各种命名都尽量使用易懂的英文,实在不行用拼音hhh)
另外注意在使用
cv2.imread()与cv2.imwrite()时,其文件路径,都不能出现中文字符,不然会报错,保存图片也会失败
问题2:
cannot find reference 'xxx' in init.py-python
这是一个警告,不是程序错误,但是看着让人不舒服,想解决它
可能因为相应的包是pip下载的,不是在pycharm中下载的,导致不兼容,出现的警告
因此解决办法就是去pycharm中install一下就好了
最后点击所在窗口的右下角的install package
问题3:
出现报错:cv2.error: OpenCV(4.5.5) 👎 error: (-5:Bad argument) in function 'imshow'
这里是功能函数“imshow”出了问题,需要正确使用imshow的用法
None = imshow(winname, img)
函数 cv2.imshow() 在指定窗口中显示 OpenCV 图像,窗口自适应图像大小。
参数说明:
winname:字符串,显示窗口的名称。 img:所显示的 OpenCV 图像,nparray 多维数组。 注意事项:
函数 cv2.imshow() 之后要用 waitKey() 函数设定图像窗口的显示时长,否则不会显示图像窗口。 图像窗口将在 waitKey() 函数所设定的时长(毫秒)后自动关闭,waitKey(0) 表示窗口显示时长为无限。 可以创建多个不同的显示窗口,每个窗口必须命名不同的 filename。 可以用 destroyWindow() 函数关闭指定的显示窗口,也可以用 destroyAllWindows() 函数关闭所有的显示窗口。 基本例程:
# 1.6 图像的显示(cv2.imshow) imgFile = "../images/imgLena.tif" # 读取文件的路径 img1 = cv2.imread(imgFile, flags=1) # flags=1 读取彩色图像(BGR) img2 = cv2.imread(imgFile, flags=0) # flags=0 读取为灰度图像 cv2.imshow("Demo1", img1) # 在窗口 "Demo1" 显示图像 img1 cv2.imshow("Demo2", img2) # 在窗口 "Demo2" 显示图像 img2 key = cv2.waitKey(0) # 等待按键命令, 1000ms 后自动关闭