当前位置: 首页 > news >正文

【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打印。
 



来自为知笔记(Wiz)



转载于:https://www.cnblogs.com/jsxyhelu/p/5907583.html

相关文章:

  • bash的工作特性及其使用方法
  • ajax执行时提示
  • PHP简单漂亮的分页类
  • 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。...
  • fgets()函数读取键盘,去掉换行符或丢弃多余的字符
  • 解决Only a type can be imported. com.mysql.jdbc.Connection resolves to a package的报错问题
  • Java_I/O输入输出_使用输入输出流读取文件,将一段文字加密后存入文件,然后读取,将加密前与后的文件输出...
  • Servlet类源码说明
  • 连接 insance 到 vlan101 - 每天5分钟玩转 OpenStack(97)
  • 15、限定词
  • Automated Memory Analysis
  • 5.openstack之mitaka搭建计算节点
  • 改变Chrome浏览器主程序_缓存_个人信息路径
  • Xtreme9.0 - Car Spark 动态规划
  • java 计算距离现在几分,几个小时,几天
  • 时间复杂度分析经典问题——最大子序列和
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 10个确保微服务与容器安全的最佳实践
  • 30秒的PHP代码片段(1)数组 - Array
  • ERLANG 网工修炼笔记 ---- UDP
  • github指令
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Shell编程
  • Twitter赢在开放,三年创造奇迹
  • Vue ES6 Jade Scss Webpack Gulp
  • Vue2.x学习三:事件处理生命周期钩子
  • 从PHP迁移至Golang - 基础篇
  • 给github项目添加CI badge
  • 规范化安全开发 KOA 手脚架
  • 聊聊redis的数据结构的应用
  • 聊聊sentinel的DegradeSlot
  • 三栏布局总结
  • 移动端唤起键盘时取消position:fixed定位
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (Java)【深基9.例1】选举学生会
  • (NSDate) 时间 (time )比较
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (南京观海微电子)——I3C协议介绍
  • (十八)SpringBoot之发送QQ邮件
  • (转)创业的注意事项
  • (转)德国人的记事本
  • .FileZilla的使用和主动模式被动模式介绍
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET 8.0 发布到 IIS
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。