C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – OpenCV边界框大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用C环境中的OpenCV软件.目的是检测拳击手套并在手套轮廓周围画一个边界框.

我遇到的问题是边界框被淹没不止一次,实际上绘制了多个框.我过去几天试图做的是以某种方式消除绘制的盒子数量并且只绘制一个大的边界框.

我正在寻找一些技术来填充整个对象,我相信在这种情况下会有所帮助.

下面我发布了用于实现图像中显示的结果的代码

vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
vector<Vec3f> vecCircles;               
vector<Vec3f>::iterator itrCircles;

while(1)
{
    Mat frame;
    cap >> frame; // get a new frame from camera
    /////////////////////
    Mat imgHSV;
    cvtColor( frame,imgHSV,CV_BGR2HSV );
    ////////////////////
    Mat blur_out;
    GaussianBlur(imgHSV,blur_out,Size(1,1),2.0,2.0);
    ////////////////////
    Mat range_out;
    inRange(blur_out,Scalar(100,100,100),Scalar(120,255,255),range_out);
    ////////////////////
    findContours(range_out,contours,hierarchy,CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE,Point(0,0) );

     /// Approximate contours to polygons + get bounding rects and circles
     vector<vector<Point> > contours_poly( contours.size() );
     vector<Rect> boundRect( contours.size() );
     vector<Point2f>center( contours.size() );
     vector<float>radius( contours.size() );

     for( int i = 0; i < contours.size(); i++ )
     { 
         approxPolyDP( Mat(contours[i]),contours_poly[i],3,true );
         boundRect[i] = boundingRect( Mat(contours_poly[i]) );
     }

     /// Draw polygonal contour + bonding rects
     Mat drawing = Mat::zeros( range_out.size(),CV_8UC3 );
     for( int i = 0; i< contours.size(); i++ )
     {
         Scalar color = Scalar(255,255);
         drawContours( drawing,contours_poly,i,color,1,8,vector<Vec4i>(),Point() );
         rectangle( drawing,boundRect[i].tl(),boundRect[i].br(),2,0 );          
     }

如果有人可以提出一些提示或提供一些信息来源,我可以找到我的问题的答案.

编辑(快速更新):

我设法将输出图像逐渐安静地提升到安静的结果.关键是使用erode& amp;扩张以及我的findContours()函数.我将CV_RETR_TREE更改为CV_RETR_EXTERNAL.我还解决了一些其他小事,但效果很好:

 

不知道我是否应该在这里写这个或打开新的线程….但现在我需要一些帮助组件标签提取参数,如中心点和区域.

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

大佬总结

以上是大佬教程为你收集整理的c – OpenCV边界框全部内容,希望文章能够帮你解决c – OpenCV边界框所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: