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

         增强后的图像需要通过图像处理获得定量的值。在实际程序设计过程中,轮廓很多时候都是重要的分析变量。参考Halcon的相关函数,我增强了Opencv在这块的相关功能。

         //寻找最大的轮廓
        VP FindBigestContour(Mat src){    
            int imax = 0; //代表最大轮廓的序号
            int imaxcontour = -1; //代表最大轮廓的大小
            std::vector<std::vector<cv::Point>>contours;    
            findContours(src,contours,CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE);
            for (int i=0;i<contours.size();i++){
                int itmp =  contourArea(contours[i]);//这里采用的是轮廓大小
                if (imaxcontour < itmp ){
                    imax = i;
                    imaxcontour = itmp;
                }
            }
            return contours[imax];

        }
    就是直接返回最大的轮廓。

     
        //寻找并绘制出彩色联通区域
        vector<VPconnection2(Mat src,Matdraw){    
            draw = Mat::zeros(src.rows,src.cols,CV_8UC3);
            vector<VP>contours;    
            findContours(src.clone(),contours,CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE);
            //由于给大的区域着色会覆盖小的区域,所以首先进行排序操作
            //冒泡排序,由小到大排序
            VP vptmp;
            for(int i=1;i<contours.size();i++){
                for(int j=contours.size()-1;j>=i;j--){
                    if(contours[j].size()<contours[j-1].size()){    
                        vptmp = contours[j-1];
                        contours[j-1] = contours[j];
                        contours[j] = vptmp;
                    }
                }
            }
            //打印结果
            for (int i=contours.size()-1;i>=0;i--){
                Scalar  color  = Scalar(rng.uniform(0,255),rng.uniform(0,255),rng.uniform(0,255));
                drawContours(draw,contours,i,color,-1);
            }
            return contours;
        }
        vector<VPconnection2(Mat src){
            Mat draw;
            return connection2(src,draw);
        }
    寻找联通区域是经典的图像处理过程。我采用轮廓分析方法进行解决;并且最后对不能区域绘制不同颜色,非常直观。
     





  • 相关阅读:
    测试方法与步骤
    团队项目需求分析
    第一次个人作业
    3种shell自动交互的方法
    mysql用户管理
    build web application with golang
    安卓中的LINUX内核
    结对项目小结
    关于aria2-yaaw下载软件
    软工结对项目预览
  • 原文地址:https://www.cnblogs.com/jsxyhelu/p/5907558.html
Copyright © 2011-2022 走看看