- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 图像特征的
提取与分析;图像特征提取与分析;;12.1;图像特征简介;图像特征简介;图像特征简介;12.2;图像轮廓特征;1.图像轮廓的查找和绘制;第三个参数method,是轮廓近似方法,有如下4种方法:
cv2.CHAIN_APPROX_NONE:存储所有边界点,显示所有轮廓;
cv2.CHAIN_APPROX_SIMPLE:压缩垂直、水平、对角方向,只保留端点;
cv2.CHAIN_APPROX_TX89_L1:使用teh-Chinl近似算法;
cv2.CHAIN_APPROX_TC89_KCOS:使用teh-Chinl chain近似算法。
第四个参数offset,每一个轮廓点的偏移量。当轮廓是从图像ROI中提取出来的时候,使用偏移量有用,因为可以从整个图像上下文来对轮廓做分析。
函数输出参数有二个:
第一个输出参数contours为检测到的轮廓,存储轮廓点的矢量。
第二个输出参数hierarchy为层次结构,可选输出向量,包含有关图像拓扑的信息。返回的纯轮廓是一个python的列表,此处存储所有图像中的轮廓,每一个轮廓都是numpy数组,包含检测物体的边界点。;图像绘制轮廓函数是cv2.drawContours(),可根据用户提供的边界点绘制任何形状的轮廓,其语法格式为:
cv2.drawCountours(img, contours, -1, (0, 0, 255), 2)
其中,第一个输入参数img表示输入的源图像;
第二个输入参数contours表示通过python列表传递的轮廓值(列表);
第三个输入参数表示轮廓索引,即绘制第几个轮廓,-1代表绘制所有的轮廓;
第四个输入参数表示轮廓颜色,用RGB(0, 0, 255)表示颜色;
第五个输入参数轮廓线条粗细。;常用的图像绘制轮廓输出格式有三种:
(1)在图像中绘制所有轮廓:cv2.drawCountours(img, contours, -1, (0, 0, 255), 3)
(2)绘制单个轮廓,如第三个轮廓:cv2.drawCountours(img, contours, 2, (0, 0, 255), 3)
(3)多数情况下使用以下方式:
cnt = contours[3]
cv2.drawCountours(img, [cnt], 0, (0, 0, 255), 3);例12.1 在图像中查找并绘制所有轮廓,程序代码如下:;程序运行输出结果如图所示。;12.2.2.带噪声的轮廓;例12.2 在带有噪声的图像中绘制所有轮廓,程序代码如下:;程序运行输出结果如图所示。;12.3.边缘检测后的轮廓;例12.3 Canny 边缘检测后绘制图像的轮廓,程序代码如下:;(a) 原图像 (b) Canny边缘图像 (c) 轮廓图像;12.3;图像几何特征;12.3.1 面积与周长;2.周长
周长指的是轮廓像素点总数,也常用各个像素点的中点连线的多边形长度进行度量,常用的计算轮廓周长的函数语法格式为:
perimeter = cv2.arcLength(cnt, True)
其中,第一个参数cnt为输入的单个轮廓值,第二参数用来指定对象的形状是闭合轮廓(True),还是曲线。
使用cv2.findCountor获得的轮廓contours是一个嵌套的类型,即我们可以通过cnt = contours[0]获得第一个物体的轮廓值,并计算出轮廓面积和周长等,其步骤如下:
(1)载入图像,做灰度值和二值化处理,并使用cv2.findCountor找出轮廓值,使用cv2.drawCountors画出第一个图像的轮廓。
(2)通过索引取出第一个轮廓值cnt,使用cv2.ContourArea()计算轮廓的面积。
(3)使用cv2.arcLength 获得轮廓的周长。; 例12.4 求六边形图像的轮廓、面积和周长,程序代码如下:;图像的面积和周长;12.3.2 外接矩形;2.旋转矩形:
由上述cv2.boundingRect()和cv2.rectangle() 2个函数画出的矩形不一定是最小面积的矩形,要想获得最小外接矩形,就要考虑矩形的旋转。
求解最小外接矩形的方法就是将图像沿逆时针或者顺时针按照一定的度数进行旋转,每旋转一次,求解一次轮廓的外接矩形的面积,记录每次旋转的角度、左上角点坐标、矩形长和宽,根据三角函数可以得到旋转后的角点坐标,等旋转完成一圈后,取面积最小的即为最小外接矩形。;使用的函数语法格式是:
min_rect = cv2.minAreaRect(cnt)
其中,输入参数cnt就是轮廓的点集。返回的是一个Box2D 结构,其中包含矩形左上角的坐标(x,y),矩形的宽和高(w,h),以及旋转角度θ
您可能关注的文档
最近下载
- 医疗器械相关标准-TGBC17-2024 检验检测机构常用化学试剂储存管理规范&TGBC19-2024 检验检测机构危险化学品安全管理规范.pdf VIP
- 铜陵铜化集团招聘考试题目.pdf
- 爱尔兰-性能研究申请.pdf VIP
- 呼吸道感染患者的呼吸护理.pptx VIP
- 物流管理控制程序 (一).pdf VIP
- 医疗器械体系文件- 风险管理控制程序(参考模板)&采购控制程序(参考模板).pdf VIP
- 智能世界2035报告.pdf
- 丹麦-制造商报告医疗器械事故.pdf VIP
- 关于第一类医疗器械备案有关事项的公告.docx VIP
- 2025中盐盐穴综合利用股份有限公司招聘(7人)笔试模拟试题及答案解析.docx VIP
文档评论(0)