opencv:轮廓属性
2015-11-22 09:42
417 查看
1. Aspect Ratio宽与高之比
cv2.boundingRect(cnt)
2. Extent 目标面积 占 边界矩形框 的比例
area = cv2.contourArea(cnt) x,y,w,h = cv2.boundingRect(cnt) rect_area = w*h extent = float(area)/rect_area
3. Solidity 目标面积 占 边界凸形边界 的比例
area = cv2.contourArea(cnt) hull = cv2.convexHull(cnt) hull_area = cv2.contourArea(hull) solidity = float(area)/hull_area4. Equivalent Diameter 与目标面积相等的圆的直径
area = cv2.contourArea(cnt) equi_diameter = np.sqrt(4*area/np.pi)
5. Orientation 得到目标的方向,顺带还得到最大轴和最小轴
(x,y),(MA,ma),angle = cv2.fitEllipse(cnt)
6. Mask and Pixel Points 获得该目标所有点的坐标
mask = np.zeros(imgray.shape,np.uint8) cv2.drawContours(mask,[cnt],0,255,-1) pixelpoints = np.transpose(np.nonzero(mask)) #pixelpoints = cv2.findNonZero(mask)
7. Maximum Value, Minimum Value and their locations
8. Mean Color or Mean Intensity
9. Extreme Points
topmost, bottommost, rightmost and leftmost points of the object.
以上笔记自:http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_imgproc/py_contours/py_contour_properties/py_contour_properties.html
另外几个操作:笔记自http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/py_contours_more_functions.html
1.判断一个点是否在一个形状内部,以及到这个形状的最短距离
dist = cv2.pointPolygonTest(cnt,(50,50),True)
2.判断两个形状的相似性(没理解错的话,用的七阶矩)总结:2. Extent 目标面积 占 边界矩形框 的比例 因为面积这个东西不受邮箱,配件这些细节影响。所以这个参数可否可以作为识别的一个粗的特征?3.Solidity 目标面积 占 边界凸形边界 的比例 因为面积这个东西不受邮箱,配件这些细节影响。所以这个参数可否可以作为识别的一个粗的特征?遗留问题:5.中提取方向和轴用的什么方法?
相关文章推荐
- Linux可重入函数
- Linux 下配置网卡的别名即网卡子IP的配置
- Docker在测试领域的应用
- linux读写ntfs
- Copy List with Random Pointer
- linux下tar命令参数详解
- linux中系统性能监测工具包sysstat
- linux中磁盘IO相关信息统计工具iostat
- linux中CPU相关信息统计工具mpstat
- linux虚拟内存相关信息统计工具vmstat
- Linux多线程编程
- Linux之更好的使用Bash
- Linux下查看cpu数、内核数、线程数命令
- 解决:The Apache Tomcat Native library which allows
- awstats和jawstats对apache、nginx进行多站点日志分析
- Centos6.5下的rsync+inotify远程实时文件同步服务搭建
- 常用的shell脚本
- Linux Shell 常用命令总结
- log4j:WARN Please initialize the log4j system properly解决办法
- linux不知道的一些事儿