.利用opencv来识别图片中的矩形 其中遇到的问题主要是识别轮廓时矩形内部的形状导致轮廓不闭合。 1. 对输入灰度图片进行高斯滤波 2. 做灰度直方图,提取阈值,做二值化处理 3. 提取图片轮廓 4. 识别图片中的矩形 5. 提取图片中的矩形
(1)approxPolyDP 多边形逼近
approxPolyDP 主要功能是把一个连续光滑曲线折线化,对图像轮廓点进行多边形拟合
(2)boundingRect 最小外接矩形 (3) minEnclosingCircle 最小外接圆形 (4)arcLength 计算周长 (5)contourArea 计算面积 (6)FitEllipse 最小外接椭圆 (7)cvFindDominantPoints 寻找关键点 (8)轮廓匹配 有10个图案,包括三角形,方形和圆。你把这三种图案识别出来,每一种图形画上不同颜色的轮廓,并提取出每个轮廓的重心坐标。
0.通过摄像头或是加载图片的方式获取到源图; 1.调用erode , dilate函数进行腐蚀膨胀,去掉图片上面黑色字体的影响(注意内核元素的定义)! 2.调节HSV的值,通过morphologyEx函数连接一些连通域; 3.通过第2步的操作得到只保留与目标形状相近部分的图片; 4.通过cvFindContours函数检测所有轮廓; 5.通过GetAreaMaxContour函数找到最大的轮廓(加上轮廓面积条件做判断,优化识别效果); 6.如果是圆,通过cvDrawContours函数画出轮廓;如果是矩形或是三角形,通过cvApproxPoly函数进行多边形逼近; 7.如果是圆的话,用handlecicle函数进行识别,参数根据实际图片进行调节。矩形与三角形的判断方法可参考网上的
凸包检测是给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它是能包含点集中的所有点的。理解物体形状或轮廓的一种比较有用的方法便是计算一个物体的凸包,然后计算其凸缺陷。 OpenCV中提供了函数convesHull()用于对物体轮廓凸包进行检测,对形状凸包缺陷分析时使用convexityDefects()函数,每个缺陷区包含四个特征量:起始点、结束点、距离和最远点。 下面介绍这两个函数:
convexhull可以得到vector<vector<Point> >和vector<vector<int>>两种类型结果,ConvexityDefects中的convechull凸包检测函数convexhull应该为vector<vector<int> >类型,否则不能通过ASSERT检查;参数convexityDefects为输出参数,检测到的结果为vector<vector<Vec4i> >类型,Vec4i中存储了起始点、结束点、距离及最远点到凸包的距离。
读取灰度图,视频图,并灰度化
中值滤波,均值滤波,高斯滤波,二值化阈值分割,模板匹配,形态学操作等
腐蚀和膨胀是最基本的形态学运算。
腐蚀和膨胀是针对白色部分(高亮部分)而言的。
膨胀就是对图像高亮部分进行“领域扩张”,效果图拥有比原图更大的高亮区域;腐蚀是原图中的高亮区域被蚕食,效果图拥有比原图更小的高亮区域。
膨胀
膨胀就是求局部最大值的操作,从图像直观看来,就是将图像光亮部分放大,黑暗部分缩小。
图像原来光亮的部分被放大了,黑暗的部分被缩小了。
腐蚀
开运算:先腐蚀再膨胀,用来消除小物体
闭运算:先膨胀再腐蚀,用于排除小型黑洞
形态学梯度:就是膨胀图与俯视图之差,用于保留物体的边缘轮廓。
顶帽:原图像与开运算图之差,用于分离比邻近点亮一些的斑块。
黑帽:闭运算与原图像之差,用于分离比邻近点暗一些的斑块。
opencv里有一个很好的函数getStructuringElement,我们只要往这个函数传相应的处理参数,就可以进行相应的操作了,使用起来非常方便。
下面列举一下相应的操作宏定义。
形状特征,颜色,纹理,概率,描述算子,梯度直方图等。
图像的矩
图像的矩到底是什么?
矩是概率与统计中的一个概念,是随机变量的一种数字特征。
有点抽象,简而言之,矩就是图像的特征信息,比如大小、位置、方向等。
OpenCV提供了一些函数来计算图像的矩:
详见这里 轮廓查找和多边形包围轮廓
最后提供参考代码:
参考文献:
1.https://blog.csdn.net/lcy597692327/article/details/79753455
2.https://blog.csdn.net/xuxunjie147/article/details/76577298
3.https://blog.csdn.net/spw_1201/article/details/53690321
4.https://blog.csdn.net/kakiebu/article/details/79824856
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:975644476@qq.com
本文链接:http://www.gawce.com/tnews/1757.html