使用opencv实现matlab中的imfill填充孔洞功能
2017-07-14 10:56
1486 查看
使用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); }
相关文章推荐
- opencv 实现孔洞填充的两个解决方案 MATLAB--imfill功能(收集)
- 使用OpenCV 2.4.0 实现FPC上焊点检测功能
- 【OpenCV】使用floodfill()实现PhotoShop魔棒功能
- OpenCV实现fft2、ifft2变换和matlab中psf2otf()函数的功能
- 利用OpenCV findNonZero函数实现类似matlab中find函数的功能
- 基于matlab标定数据,使用opencv实现双目立体摄像头的标定(源代码)
- 声卡虚拟示波器简单功能-使用matlab DAQ工具箱中API实现
- 使用OPENCV简单实现具有肤质保留功能的磨皮增白算法
- 【OpenCV】使用floodfill()实现PhotoShop魔棒功能
- 【OpenCV】使用floodfill()实现PhotoShop魔棒功能
- ASP.NET jQuery 随笔 使用jQuery UI的Autocomplete方法实现文本框的自动搜索填充功能
- 使用opencv实现单反的慢速拍照功能
- 使用opencv实现图像局部放大功能
- 【OpenCV】使用floodfill()实现PhotoShop魔棒功能
- Matlab中利用mex编译Opencv实现画板绘图功能
- 使用jquery autocomplete实现类似搜索引擎的自动填充功能
- Laravel框架使用Seeder实现自动填充数据功能
- matlab使用神经网络实现分类功能
- Opencv 向量的一阶差分函数封装实现 功能等价于Matlab的diff函数 附:显示CvMat的函数封装
- OPENCV2学习(1)_生成运动模糊核(OPENCV2 实现Matlab中fspecial的motion功能)