小编这次要给大家分享的是用实例分析opencv查找连通区域大面积,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
成都创新互联公司专业网站设计制作、成都网站建设,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文发布平台等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。今天在弄一个查找连通的大面积的问题。
要把图像弄成黑底,白字,这样才可以正确找到。
然后调用下边的方法:
RETR_CCOMP:提取所有轮廓,并将轮廓组织成双层结构(two-level hierarchy),顶层为连通域的外围边界,次层位内层边界
#include <opencv2/imgproc.hpp> #include <opencv2/highgui.hpp> using namespace cv; using namespace std; int main( int argc, char** argv ) { Mat src = imread( argv[1] ); int largest_area=0; int largest_contour_index=0; Rect bounding_rect; Mat thr; cvtColor( src, thr, COLOR_BGR2GRAY ); //Convert to gray threshold( thr, thr, 125, 255, THRESH_BINARY ); //Threshold the gray bitwise_not(thr,thr); //这里先变反转颜色 vector<vector<Point> > contours; // Vector for storing contours findContours( thr, contours, RETR_CCOMP, CHAIN_APPROX_SIMPLE ); // Find the contours in the image for( size_t i = 0; i< contours.size(); i++ ) // iterate through each contour. { double area = contourArea( contours[i] ); // Find the area of contour if( area > largest_area ) { largest_area = area; largest_contour_index = i; //Store the index of largest contour bounding_rect = boundingRect( contours[i] ); // Find the bounding rectangle for biggest contour } } drawContours( src, contours,largest_contour_index, Scalar( 0, 255, 0 ), 2 ); // Draw the largest contour using previously stored index. imshow( "result", src ); waitKey(); return 0; }
文章题目:用实例分析opencv查找连通区域最大面积-创新互联
本文地址:https://www.cdcxhl.com/article0/ideoo.html
成都网站建设公司_创新互联,为您提供用户体验、做网站、建站公司、商城网站、微信公众号、网站设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联