c# opencv 找到图像的轮廓,并绘制轮廓

news2024/9/23 17:15:59
            Mat colorMat = new Mat();
            Mat outMat= new Mat();
            Mat resultMat = new Mat();
            Mat src = Cv2.ImRead("I:\\mask.jpg");
            //转成灰度图
            Cv2.CvtColor(src, colorMat, ColorConversionCodes.RGB2GRAY);
            //对灰度图像进行阈值操作得到二值图像
            Cv2.Threshold(colorMat, outMat, 0, 255, ThresholdTypes.Binary);
            //得到图像中物体的轮廓
            Cv2.FindContours(outMat, out OpenCvSharp.Point[][] contours, out HierarchyIndex[] hierarchy, RetrievalModes.CComp, ContourApproximationModes.ApproxNone);

            for (int idx = 0; idx < contours.Length; idx++)
            {
                ///绘制轮廓
                Cv2.DrawContours(outMat, contours, idx, new Scalar(255), 1, LineTypes.Link4, hierarchy);
            }

            Cv2.ImShow("result", outMat);

原图                                                                                结果图                                                         

   

    本意是想去除白色图像周边的几个白色小点,得到轮廓图后,其他都设置为黑色,结果是白点更明显了,没有达到预期效果。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/728243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python编程系列】3、初识Python代码:输入输出

1、输出 在PyCharm上新建项目和python文件后,编写一行代码,输出:"Hello World"这句话。代码为: print("Hello World")PyCharm上运行代码有两种方式,如下图1和2。代码运行结果在下方显示: print函数打印字符串时加单引号或双引号,不能混用。 单引…

大厂都在做的jmeter接口自动化测试登峰造极的JMETER实现接口自动化测试

目录 一、JMETER的环境搭建 二、JMETER的汉化 三、JMETER的接口请求 四、JMETER的参数化 五、JMETER的JSON传参 六、JMETER的断言添加 一、JMETER的环境搭建 二、JMETER的汉化 临时汉化方法&#xff1a;打开jmeter&#xff0c;options-->choose language-->选择语言…

simulink 常用子系统 核心是函数封装simulink function

目录 Enabled Subsystem Triggered Subsystem Function-call Subsystem Simulink Function Enabled Subsystem Triggered Subsystem Function-call Subsystem Simulink Function 类似c函数的封装 数组形参

ikun猛戳进来丨使用Python打造属于你的ikun音乐播放器,简直不要太好用

首先声明&#xff0c;我不是小黑子&#xff0c;我不是小黑子&#xff01; 作为一个ikun&#xff0c;时刻都在想着我们家姐姐&#xff01; 这不上次用Python做了一个ikun飞机大战&#xff0c;今天再给大家整活一手&#xff0c;Python tkinter开发一个专属ikun音乐播放器&#x…

CVPR 2023 | 掩码图像建模MIM的理解、局限与扩展

编者按&#xff1a;掩码图像建模&#xff08;Masked Image Modeling, MIM&#xff09;的提出&#xff0c;为计算机视觉模型训练引入无监督学习做出了重要贡献。得益于 MIM 的预训练算法&#xff0c;计算机视觉领域在近年来持续输出着优质的研究成果。然而整个业界对 MIM 机制的…

【Java从入门到大牛】程序流程控制

&#x1f525; 本文由 程序喵正在路上 原创&#xff0c;CSDN首发&#xff01; &#x1f496; 系列专栏&#xff1a;Java从入门到大牛 &#x1f320; 首发时间&#xff1a;2023年7月7日 &#x1f98b; 欢迎关注&#x1f5b1;点赞&#x1f44d;收藏&#x1f31f;留言&#x1f43e…

STM32CubeMX实现USB虚拟串口环回测试功能

STM32CubeMX实现USB虚拟串口环回测试功能 &#x1f4cd;参考ST官方给出的参考案例&#xff1a;https://www.stmcu.com.cn/Designresource/detail/LAT/711466&#x1f388;同功能配置可以参考《STM32 USB使用记录&#xff1a;使用CDC类虚拟串口&#xff08;VCP&#xff09;进行通…

MySQL系统函数

系统函数&#xff1a; 数学函数 1、abs() pi() 2、sqrt() 3、cell() floor() round() truncate() cell是向上取整&#xff0c;floor是向下取整。 注意&#xff1a;round负数和java里面的四舍五入有所不同 Round还可以指明位数 turncate是截断 4、power() …

颜色分类 (力扣)JAVA

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决这…

用牛鲨NFT赚取SUI的机会,这不就来了?

很高兴向大家宣布Mysten Labs的Bullshark Quests活动&#xff0c;这是一个为Bullshark持有者提供赚取SUI奖励&#xff08;和其他福利&#xff09;的全新方式&#xff0c;Bullshark是ACES计划的一部分。Bullshark Quests将成为一个持续的活动&#xff0c;为Bullshark持有者提供通…

为什么需要多语言并行机器翻译?

随着全球化的加速和不同语言之间的交流需求不断增长&#xff0c;多语言机器翻译&#xff08;Multilingual Parallel Machine Translation&#xff09;成为一个备受关注的领域。传统上&#xff0c;机器翻译系统主要集中于一对特定语言之间的翻译&#xff0c;但这种单一语言对的模…

微服务的划分姿势分享

微服务是一种理念&#xff0c;没有确切的定义和边界&#xff0c;好比设计原则&#xff0c;是属于抽象的概念。在定义不明确的情况下谈划分也是一种各说各话&#xff0c;具体问题需要具体分析。 微服务的划分矛盾在于粒度&#xff0c;如果粒度太大了&#xff0c;分和不分似乎都差…

npm 记录

转 请看原文&#xff0c;我只是怕原文没了&#xff0c;复制了一遍。我目的是想记录缓存那一块。 前端工程化 - 剖析npm的包管理机制 - 掘金 在content-v2/sha512 执行 grep -n "https://registry.npmjs.org/base64-js/-/base64-js-1.0.1.tgz" -r ./ 获取缓存包…

Java 定义返回一个不能被修改、删除元素的List

为啥突然分享下这个&#xff0c;也是从mybatis源码看到了&#xff0c;所以想分享下&#xff1a; org.apache.ibatis.plugin.InterceptorChain 使用 Collections.unmodifiableList(); 示例&#xff1a; public static void main(String[] args) {List<String> canNotEdit…

Android 曲线覆盖图

看图 样例代码 layout.xml <com.XXXXX.utils.GraphBendLineandroid:id"id/ghost_view"android:layout_width"200dp"android:layout_height"200dp"android:layout_margin"40dp"app:node_bar_line_color"#F9FEFD"app:nod…

药物设计学笔记:基础篇

笔记来自《药物设计学》 文章目录 1.药物设计的分子基础2.药物设计的理论基础 1.药物设计的分子基础 化学小分子药物与生物大分子靶标之间相互作用是药物设计的分子基础临床所用的药物50%都属于手性化合物&#xff0c;这是因为药物靶标的基本单元如氨基酸或核苷酸都是手性结构…

快来收藏这几款免费的图标设计软件!

图标素材为网站、应用程序、文档等提供简洁明了的标识&#xff0c;尽管AdobeIllustrator等付费图标设计软件功能强大&#xff0c;但是对于一些轻量级的设计要求&#xff0c;使用免费的图标设计软件是个不错的选择。本文将向大家介绍5款免费的图标设计软件&#xff0c;一起来看看…

【自我提升】Yolov5使用云端GPU训练模型(谷歌免费版和AutoDL收费版对比)

写在前面&#xff1a;继我前几篇Yolov5系列的博客后&#xff0c;来填一个云端训练数据的坑。我公司电脑只能使用CPU训练模型&#xff0c;很拉跨。我自己的笔记本虽然支持GPU&#xff0c;但是运行起来很卡&#xff0c;而且稍微设置设置大一点轮数和批次&#xff0c;就会报当前磁…

CentOS7 主机网卡怎么配置端口聚合

环境&#xff1a; CentOS7 CentOS Linux release 7.7.1908 (Core) 网卡1&#xff1a;瑞昱普通千兆板载网卡 网卡2&#xff1a;EB-LINK intel 82599芯片PCI-E X8 10G 光模块千兆单模1310X1 问题描述&#xff1a; CentOS7 主机网卡怎么配置端口聚合 配置网卡聚合链路的作…

揭秘验证码,你可能不知道的那些事儿

在现代网络世界中&#xff0c;我们经常遇到验证码这个概念。它是一种用于验证使用者身份或防止恶意行为的安全机制。然而&#xff0c;除了表面上的使用和功能&#xff0c;验证码还有许多有趣而不为人所知的方面。本文将带你揭秘验证码背后的秘密&#xff0c;探索你可能不知道的…