很久前的一个坑,好多BUG都因为没有及时记录而遗失;现在对已经有记录的几个差异进行说明:
1.AttributeError: module 'cv2.cv2' has no attribute 'cv'
举例:
# 原语句:
# total_frames = cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT)
# 更改为:
total_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)
上面的语句为py2.7,下面为py3。
例子来源以及参考链接:https://blog.csdn.net/orDream/article/details/85332397,里面还有一个解决兼容性问题的方案,因为没有遇到,就不在此罗列。
2.ModuleNotFoundError: No module named 'Tkinter'
因为这是一个Python自带库,网上给了很多硬核解决方案,例如利用安装包对Python进行Repair,当然,真正的原因在此链接中给出解释:https://blog.csdn.net/weixin_39338645/article/details/83116004
也就是说,我们把代码里的大写改为小写问题迎刃而解。
3.ValueError: too many values to unpack (expected 2)
这个报错是在使用边缘检测的时候遇到的问题,不过这次不是Python的锅,而是OpenCV自身的问题。opencv2返回两个值:contours:hierarchy。注:opencv3会返回三个值,分别是img, countours, hierarchy。上述问题比较手册就能发现。
直截了当的解释在此:https://blog.csdn.net/jjddss/article/details/72674704
4.(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
比较常见的错误,不是任何人的锅,而是程序员(我)的锅,出现这个问题多半是没有读到图片,好好检查一下图片地址吧!
参阅:https://blog.csdn.net/fengchengbenben/article/details/88425307
以上的问题都源自《OpenCV 3 计算机视觉Python语言实现(原书第2版)》,因为书上的例程都是用的py2.7,因此会遇到一些问题。