标签:art 轮廓提取 unp html 图像 检测 bsp flow method
本文链接:https://blog.csdn.net/ling_xiobai/article/details/79691785
今天使用opencv运行一个脚本,但是出现cv2.cv.BoxPoints()函数有错,提示’module’ object has no attribute ‘cv’ 的错误,找了一些帖,发现最多的解决方法就是说“这是因为opencv3已经没有了cv,只能重新下载opencv2 ; ”,我就纳闷了,有新的版本不用,为什么还要下载旧的版本。有的更是建议“from cv2 import cv as cv”这是开玩笑吧,根本不起作用,根本原因就是版本不支持。但是我只是想用这个函数来找出坐标而已,重新下载一个opencv,感觉好麻烦,最后去stackflow硬是锻炼了一下英文参考链接,偶然发现原来opencv3的版本中只是改了一点,所以:
如果你只是想用这个函数的功能,又不想装opencv2,那么只需把cv2.cv.BoxPoints()函数改为cv2.boxPoints()。
#顺便提一下,版本语法不兼容的错误经常会出现,比如python2 vs python3 , opencv2 vs opencv3 ,
也不建议大家要一根筋去把他们的差异背下来,只需要出现问题的时候去网上找就行。
附加:
有时候写findContours函数时会遇上too many values to unpack (expected 2),也是版本的原因:
函数的原型为
cv2.findContours(image, mode, method[, contours[, hierarchy[, offset ]]])
参考文章:https://blog.csdn.net/hjxu2016/article/details/77833336
解析差异:
OpenCV2和OpenCV4中:
findContours这个轮廓提取函数会返回两个值:
①轮廓的点集(contours)
②各层轮廓的索引(hierarchy)
OpenCV3中:
则会返回三个值:
①处理的图像(image)
②轮廓的点集(contours)
③各层轮廓的索引(hierarchy)
三、cv2.findContours()相关:
1、参数:
①第一个参数:
寻找轮廓的图像 |
②第二个参数表示轮廓的检索模式,有四种:
cv2.RETR_EXTERNAL | 只检测外轮廓 |
cv2.RETR_LIST | 检测的轮廓不建立等级关系 |
cv2.RETR_CCOMP | 建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息 |
cv2.RETR_TREE | 建立一个等级树结构的轮廓 |
③第三个参数method为轮廓的近似办法:
cv2.CHAIN_APPROX_SIMPLE | 压缩水平方向,垂直方向,对角线方向的元素,只保留该方向的终点坐标(矩形只需四顶点) |
cv2.CHAIN_APPROX_TC89_L1 | 使用teh-Chinl chain 近似算法 |
CV_CHAIN_APPROX_TC89_KCOS | |
cv2.CHAIN_APPROX_NONE | 存储所有的轮廓点,相邻的两个点的像素位置差不超过1 |
https://www.cnblogs.com/guobin-/p/10842486.html
标签:art 轮廓提取 unp html 图像 检测 bsp flow method
原文地址:https://www.cnblogs.com/Allen-rg/p/11956997.html