1、轮廓提取

 src = cv2.imread("***.jpg", cv2.IMREAD_COLOR)
gray = cv2.cvtColor(src ,cv2.COLOR_BGR2GRAY)
ret, binary = cv2.threshold(gray,,255,cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(src,contours[32],-1,(0,0,255),1)
cv2.imshow("Src", src)

其中,threshold函数第2参数,确定黑白分界点。除此之外,还有canny等方法,形成二值图。

drawContours的轮廓参数,可以是整个轮廓,也可是其中一个。

函数原型:

cv2.threshold(src, thresh, maxval, type[, dst]) → retval, dst

type:THRESH_BINARY, THRESH_BINARY_INV, THRESH_TRUNC, THRESH_TOZERO, THRESH_TOZERO_INV

cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]]) → contours, hierarchy

mode:CV_RETR_EXTERNALCV_RETR_LIST, CV_RETR_CCOMP, CV_RETR_TREE

method:CV_CHAIN_APPROX_NONE, CV_CHAIN_APPROX_SIMPLE, CV_CHAIN_APPROX_TC89_L1, CV_CHAIN_APPROX_TC89_KCOS

contours:轮廓多边形点群数据

hierarchy:

? hierarchy[idx][0] 返回同等级层次结构的下一个轮廓索引
? hierarchy[idx][1] 返回同等级层次结构的上一个轮廓索引
? hierarchy[idx][2] 返回第一个子轮廓的索引
? hierarchy[idx][3] 返回父轮廓的索引
如果其中一个轮廓不存在,返回索引为负值

cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) → None

2、轮廓对比

(1)轮廓矩对比

 cv2.matchShapes(contours1[0], contours2[0], cv2.cv.CV_CONTOURS_MATCH_I1, 0.0)

函数原型:

cv2.matchShapes(contour1, contour2, method, parameter) → retval

method:CV_CONTOURS_MATCH_I1, CV_CONTOURS_MATCH_I2, CV_CONTOURS_MATCH_I3

(2)轮廓hist对比

 hist1 = cv2.calcHist(src1, [0], None, [256], [0, 256])
hist2 = cv2.calcHist(src2, [0], None, [256], [0, 256])
print cv2.compareHist(hist1, hist2, cv2.cv.CV_COMP_BHATTACHARYYA)

函数原型:

cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) → hist

cv2.compareHist(H1, H2, method) → retval

最新文章

  1. Zephyr OS 简介
  2. 【PRINCE2是什么】PRINCE2认证之七大原则(3)
  3. MongoDB创建数据库和集合命令db.createCollection详解(转)
  4. JS 节流
  5. vim替换命令
  6. JDBC之数据库操作
  7. 自己写的一个分页控件类(WinForm)
  8. 【转】android adb命令
  9. Mysql连表查询
  10. 动态规划——Split Array Largest Sum
  11. HUAWEI USG6000系列 & NGFW Module V100R001 典型配置案例
  12. Codeforces Round #517 体验记
  13. Mybatis 中实体类的编写
  14. 怎么将unbuntu Linux iOS 文件从U盘或者移动硬盘启动?用win32diskimager_cn
  15. 011-Shell 文件包含
  16. UIWebView和WKWebView的使用及js交互
  17. Java学习之SpringBoot整合SSM Demo
  18. cms-帖子内容实现2
  19. 跳转appStore评分
  20. bzoj 1731 [Usaco2005 dec]Layout 排队布局——差分约束

热门文章

  1. IOS7开发~错误收集
  2. Exception:System.Threading.SemaphoreFullException
  3. (原创)linux安装xgboost快速高效方法
  4. TensorFlow笔记三:从Minist数据集出发 两种经典训练方法
  5. UVA1406 - A Sequence of Numbers(树状数组)
  6. curl库pycurl实例及参数详解
  7. Runtime.getRuntime().exec()----记录日志案例
  8. Gson把对象转成json格式的字符串
  9. js关闭浏览器事件,js关闭浏览器提示及相关函数
  10. 【Unity3D】【NGUI】Atlas的动态创建