首页 > 编程语言 > 详细

【OpenCV】图像几何形状识别(C++)

时间:2021-05-01 09:14:05      阅读:26      评论:0      收藏:0      [点我收藏+]

前言

        又是好久没写。。。开了OpenCV这个板块总要写点东西,正好昨晚花了一晚上整出来一个几何形状识别,用了个简单的方法,整体上不难

理论

        对于物体几何形状的识别,我们需要的就是它的特征,而常见的几何形状特征主要在于构成这一形状的边的条数,那么对于几何形状的识别,就可以分为以下两步:首先滤除无关信息,接着获取判别特征。

        滤除无关信息我们采用的是简单的二值化处理,对于初始图像,利用到如下两个函数:

        灰度:cvtColor(img, imgGray, COLOR_BGR2GRAY)

        二值化:threshold(imgGray, imgBinary, 197, 255, THRESH_BINARY)

        197为灰度二值化阈值,对于较为复杂的情况可以采用Sobel或者Canny

         获取判别特征,首先利用findContours找出边界,利用drawContours画出边界所在,再利用多边形逼近approxPolyDP拟合出形状最可能的边数

    vector<vector<Point>> contours;

    vector<Point> point;

    vector<Vec4i> hireachy;

    findContours(imgBinary, contours, hireachy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point());//寻找边界

 

【OpenCV】图像几何形状识别(C++)

原文:https://www.cnblogs.com/ZYQS/p/14723676.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!