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);
        }
    寻找联通区域是经典的图像处理过程。我采用轮廓分析方法进行解决;并且最后对不能区域绘制不同颜色,非常直观。
     





  • 相关阅读:
    iOS-25个小技巧
    iOS-UITableView的使用
    iOS-UIPickerView
    iOS-UIStoryboard和UIResponder
    javascript弹出层-DEMO001
    jQuery源码分析-02正则表达式-RegExp-常用正则表达式
    JSON动态生成树
    回顾码农历程总结2013 期待2014
    大数据量分页存储过程效率测试附代码
    关于对象序列化json 说说
  • 原文地址:https://www.cnblogs.com/jsxyhelu/p/5907558.html
Copyright © 2011-2022 走看看