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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 工厂供电复习笔记

    工厂供电复习笔记概述什么是电网,电网怎么区分。基本概念熟练掌握。1.2电力系统接线方式和电压等级电压等级每年都考,一些基本的概念。有一张图,给一些相关参数算其他没给的参数。长线短线中性点运行方式相当重要中性点不解地,某一相不解地,为什么还能继续工作。中性点为什么经过消弧线圈接地,进位对地电流超过多少就需要。中性点为什么经小电阻接地。中性点直接接地。TN-C系统外壳带电怎么办TN-S系统TN-C-S系统市电就是这三种系统TN系统,中性线接地,有什么作用:ppt三条TT系统IT系统第二章工

    2025年9月8日
    6
  • 操作系统之引导

    系统引导环节是操作系统启动过程中的最重要环节,也是最容易出问题的环节之一。按照个人计算机的硬件标准,引导环节发生在计算机的硬件系统检测完毕之后。具体的引导工作,是由BIOS完成的。BIOS维持一个可用

    2021年12月25日
    50
  • 为低端浏览器定义原型方法replaceAll

    为低端浏览器定义原型方法replaceAllString.prototype.replaceAll=function(regex,replacement){regex=regex.replace(‘!’,’\\!’).replace(‘@’,’\\@’).replace(‘#’,’\\#’).replace(‘$’,’\\$’)returnthis.replace(newRegExp(regex,’gm’),replacement);};

    2022年7月23日
    17
  • 黑群晖DSM 6.x 配置文件grub.cfg修改 mac地址/sn等修改

    黑群晖DSM 6.x 配置文件grub.cfg修改 mac地址/sn等修改新的DSM6.x配置文件和以前的XPEnoboot的配置文件不一样了,我们可以通过OSFMount虚拟光驱软件打开img后再修改。安装完成后运行OSFMount点击左下角-Mountnew,选择下载的img镜像。(注意:img镜像目录必须是英文或数字,不能是中文)选择Partition0,点击OK再把下面Read-onlydrive的选项去勾后点击OK。在OSFMount软件里双…

    2022年5月9日
    63
  • 几款国产开源的Windows界面库

    几款国产开源的Windows界面库vchelp2013-3-212:10:47阅读(3972)评论(0)上次介绍的几款图形界面库http://blog.okbase.net/vchelp/archive/23.html都是国外的开源项目,今天介绍的几款都是国人的开源项目,大部分是采用DirectUI设计思想。 1. 炫彩界面库XCGUI炫彩界面库不仅是界面库,它是软件界面开发框架,让用户开发

    2022年7月26日
    4
  • skyeye安装+arm-elf-gdb安装+模拟s3c44b0x+执行ucos4skyeye

    skyeye安装+arm-elf-gdb安装+模拟s3c44b0x+执行ucos4skyeye

    2022年1月2日
    42

发表回复

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

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