zoukankan      html  css  js  c++  java
  • 【20160924】GOCVHelper 图像处理部分(2)

    //根据轮廓的面积大小进行选择
        vector<VP>  selectShapeArea(Mat src,Matdraw,vector<VPcontours,int minvalue,int maxvalue){
            vector<VPresult_contours;
            draw = Mat::zeros(src.rows,src.cols,CV_8UC3);
            for (int i=0;i<contours.size();i++){ 
                double countour_area = contourArea(contours[i]);
                if (countour_area >minvalue && countour_area<maxvalue)
                    result_contours.push_back(contours[i]);
            }
            for (int i=0;i<result_contours.size();i++){
                int iRandB = rng.uniform(0,255);
                int iRandG = rng.uniform(0,255);
                int iRandR = rng.uniform(0,255);
                Scalar  color  = Scalar(iRandB,iRandG,iRandR);
                drawContours(draw,result_contours,i,color,-1);
                char cbuf[100];sprintf_s(cbuf,"%d",i+1);
                //寻找最小覆盖圆,求出圆心。使用反色打印轮廓序号
                float radius;
                cv::Point2f center;
                cv::minEnclosingCircle(result_contours[i],center,radius);
                putText(draw,cbuf,centerFONT_HERSHEY_PLAIN ,5,Scalar(255-iRandB,255-iRandG,255-iRandR),5);
            }
            return result_contours;
        }
        vector<VP>  selectShapeArea(vector<VPcontours,int minvalue,int maxvalue)
        {
            vector<VPresult_contours;
            for (int i=0;i<contours.size();i++){ 
                double countour_area = contourArea(contours[i]);
                if (countour_area >minvalue && countour_area<maxvalue)
                    result_contours.push_back(contours[i]);
            }
            return result_contours;

        }

    在Halcon中,运用非常广泛的SelectShape的Opencv实现,能够根据轮廓的大小,直接挑选出所需要的部分。我在这个基础上进行了强化,能够把每个轮廓的序号标注出来。并且依然提供draw打印。
     





  • 相关阅读:
    struts2 标签为简单标签
    html a标签链接使用action 参数传递中文乱码
    html 字体加粗
    Unity3D学习笔记(一):Unity简介、游戏物体、组件和生命周期函数
    Unity3D学习笔记(一):Unity3D简介 111
    C#学习笔记(二十):C#总结和月考讲解
    C#学习笔记(十九):字典
    C#学习笔记(十八):数据结构和泛型
    C#学习笔记(十七):委托、事件、观察者模式、匿名委托和lambert表达式
    C#学习笔记(十六):索引器和重载运算符
  • 原文地址:https://www.cnblogs.com/jsxyhelu/p/5907583.html
Copyright © 2011-2022 走看看