opencv实现imfill_使用opencv实现matlab中的imfill填充孔洞功能

opencv实现imfill_使用opencv实现matlab中的imfill填充孔洞功能使用opencv实现matlab中的imfill填充孔洞功能,整体思路如下:1.首先给原始图像四周加一圈全0,并保存为另一幅图像2.使用floodFill函数给新图像进行填充,种子点设置为Point(0,0),填充颜色为全白。因为原始图像四周加了一圈0,因此使用floodFill填充之后,整个图像除了原始图像中内部的点是黑色之外其他地方全是白色。3.将填充之后…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

使用opencv实现matlab中的imfill填充孔洞功能,整体思路如下:

1.      首先给原始图像四周加一圈全0,并保存为另一幅图像

2.      使用floodFill函数给新图像进行填充,种子点设置为Point(0, 0),填充颜色为全白。因为原始图像四周加了一圈0,因此使用floodFill填充之后,整个图像除了原始图像中内部的点是黑色之外其他地方全是白色。

3.      将填充之后的图像颜色反转,再剪裁成原始图像大小。此时这张图像除了内部需要填充的地方是白色之外其他地方都是黑色。

4.      最后将新图像和原始图像取个并集,完成。

代码如下:

/**

\brief 填充二值图像孔洞

\param srcimage [in] 输入具有孔洞的二值图像

\param dstimage [out] 输出填充孔洞的二值图像

\return void

*/

void imfill(Mat srcimage, Mat &dstimage)

{

Size m_Size = srcimage.size();

Mat temimage = Mat::zeros(m_Size.height + 2, m_Size.width + 2, srcimage.type());//延展图像

//imshow(“temimage”, temimage);

srcimage.copyTo(temimage(Range(1, m_Size.height + 1), Range(1, m_Size.width + 1)));

floodFill(temimage, Point(0,0), Scalar(255));

//imshow(“temimage”, temimage);

//waitKey(0);

Mat cutImg;//裁剪延展的图像

temimage(Range(1, m_Size.height + 1), Range(1, m_Size.width + 1)).copyTo(cutImg);

dstimage = srcimage | (~cutImg);

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194289.html原文链接:https://javaforall.net

(0)
上一篇 2025年11月8日 下午8:15
下一篇 2025年11月8日 下午8:43


相关推荐

  • TCP粘包和拆包

    TCP粘包和拆包Socket 为 TCP 长连接 TCP 为了保证可靠传输并减少额外的开销 每次发包都要验证 采用了基于流的传输 基于流的传输不认为消息是一条一条的 是无保护消息边界的 保护消息边界 指传输协议把数据当做一条独立的消息在网上传输 接收端一次只能接受一条独立的消息 会存在粘包拆包问题 UDP 则是面向消息传输的 是有保护消息边界的 接收方一次只接受一条独立的信息 所以不存在粘包拆包问题 TCP 是个流协议 就是没有界限的一串数据 TCP 底层并不了解上层业务数据的具体含义 它会根据 TCP 缓冲区的实际情况进行包的划分 所

    2026年3月17日
    2
  • 获取lable选中时触发事件[通俗易懂]

    获取lable选中时触发事件

    2022年3月2日
    44
  • – AI大模型算法工程师 职位分析和面试指导

    – AI大模型算法工程师 职位分析和面试指导

    2026年3月14日
    2
  • spring dubbo集成(@autowired和构造器注入)

    一:运行spring容器的方式有三种1:使用tomcat、jetty等servlet容器运行2:自己写一个Main方法运行3:使用dubbo框架提供的Main方法运行前面两种有一定的局限性,很多缺点,具体就不一一列举,有兴趣的同学可以研究一下,今天就给大家讲如何实现第三种方式二:Main配置详讲spring路径存放路径 按照dubbo官网解说,要使得Main能正确的启

    2022年4月14日
    118
  • idea Mac 破解2021激活码[免费获取]

    (idea Mac 破解2021激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsaWNlbnNlSWQi…

    2022年3月21日
    92
  • MySQL 拼接字符串_合并字符串的库函数是

    MySQL 拼接字符串_合并字符串的库函数是原文请查看MySQL拼接字符串函数CONCAT这里selectconcat(updatesale_personbodysetoldill_code=/,code,/,oldill_reportname=/,reportname,/,oldill_oldtitle=/,oldtitle,/whereoldill=)fromtj_oldill

    2026年4月16日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号