• 大小: 3.65MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-16
  • 语言: Matlab
  • 标签: OpenCV  空洞填充  

资源简介

说明: http://blog.csdn.net/wangyaninglm/article/details/47701047 在Matlab下,使用imfill可以很容易的完成孔洞填充操作,感觉这是一个极为常用的方法,然而不知道为什么Opencv里面却没有集成这个函数。在网上查了好多关于Opencv下的孔洞填充方法,大部分使用轮廓查找方法去做的,但对于这种方法,总感觉不是特别好。之前了解过冈萨雷斯那本书上的孔洞填充算法,所以想着手重新写一个。这里借鉴了冈萨雷斯书上的集合运算方法(并不完全一样)

资源截图

代码片段和文件信息

// fillhole.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“

 
#include     
#include   
#include “opencv2/imgproc/imgproc.hpp“
 

#pragma comment(lib“opencv_core2410d.lib“)                  
#pragma comment(lib“opencv_highgui2410d.lib“)                  
#pragma comment(lib“opencv_imgproc2410d.lib“)     
  
using namespace std;  
using namespace cv;  




void fillHole(const Mat srcBw Mat &dstBw)
{
Size m_Size = srcBw.size();
Mat Temp=Mat::zeros(m_Size.height+2m_Size.width+2srcBw.type());//延展图像
srcBw.copyTo(Temp(Range(1 m_Size.height + 1) Range(1 m_Size.width + 1)));

cv::floodFill(Temp Point(0 0) Scalar(255));

Mat cutImg;//裁剪延展的图像
Temp(Range(1 m_Size.height + 1) Range(1 m_Size.width + 1)).copyTo(cutImg);

dstBw = srcBw | (~cutImg);
}

//int _tmain(int argc _TCHAR* argv[])
//{
// Mat image = imread(“8.jpg“0);
// imshow(“src“image);
//
// Mat dst = image.clone();
//
// threshold( image dst 255 200 CV_THRESH_BINARY);  
// fillHole(imagedst);
//
// imshow(“ss“dst);
//
// waitKey(0);
//
// return 0;
//}

int main()
{
Mat img=cv::imread(“3.jpg“1);

Mat gray;
cv::cvtColor(img gray CV_RGB2GRAY);

Mat bw;
cv::threshold(gray bw 0 255 CV_THRESH_BINARY | CV_THRESH_OTSU);

Mat bwFill;
fillHole(bw bwFill);

imshow(“填充前“ gray);
imshow(“填充后“ bwFill);
waitKey();
return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      53248  2015-08-11 21:50  fillhole\Debug\fillhole.exe

     文件     661012  2015-08-11 21:50  fillhole\Debug\fillhole.ilk

     文件    1100800  2015-08-11 21:50  fillhole\Debug\fillhole.pdb

     文件     921654  2015-08-09 18:31  fillhole\fillhole\1.bmp

     文件      20422  2015-08-09 18:27  fillhole\fillhole\1.jpg

     文件      29391  2015-08-10 20:21  fillhole\fillhole\2.jpg

     文件      13375  2015-08-11 21:40  fillhole\fillhole\3.jpg

     文件      29895  2015-08-10 21:34  fillhole\fillhole\8.jpg

     文件       1410  2015-08-11 21:50  fillhole\fillhole\Debug\cl.command.1.tlog

     文件      15824  2015-08-11 21:50  fillhole\fillhole\Debug\CL.read.1.tlog

     文件        704  2015-08-11 21:50  fillhole\fillhole\Debug\CL.write.1.tlog

     文件        406  2015-08-09 18:25  fillhole\fillhole\Debug\fillhole.exe.embed.manifest

     文件        472  2015-08-09 18:25  fillhole\fillhole\Debug\fillhole.exe.embed.manifest.res

     文件        381  2015-08-11 21:50  fillhole\fillhole\Debug\fillhole.exe.intermediate.manifest

     文件         51  2015-08-11 21:50  fillhole\fillhole\Debug\fillhole.lastbuildstate

     文件        895  2015-08-11 21:50  fillhole\fillhole\Debug\fillhole.log

     文件     138295  2015-08-11 21:50  fillhole\fillhole\Debug\fillhole.obj

     文件    1179648  2015-08-09 18:25  fillhole\fillhole\Debug\fillhole.pch

     文件        713  2015-08-09 18:25  fillhole\fillhole\Debug\fillhole.vcxprojResolveAssemblyReference.cache

     文件          0  2015-08-09 18:25  fillhole\fillhole\Debug\fillhole.write.1.tlog

     文件        206  2015-08-09 18:25  fillhole\fillhole\Debug\fillhole_manifest.rc

     文件          2  2015-08-11 21:50  fillhole\fillhole\Debug\link-cvtres.read.1.tlog

     文件          2  2015-08-11 21:50  fillhole\fillhole\Debug\link-cvtres.write.1.tlog

     文件          2  2015-08-11 21:50  fillhole\fillhole\Debug\link.1868-cvtres.read.1.tlog

     文件          2  2015-08-11 21:50  fillhole\fillhole\Debug\link.1868-cvtres.write.1.tlog

     文件          2  2015-08-11 21:50  fillhole\fillhole\Debug\link.1868.read.1.tlog

     文件          2  2015-08-11 21:50  fillhole\fillhole\Debug\link.1868.write.1.tlog

     文件          2  2015-08-11 21:50  fillhole\fillhole\Debug\link.4812-cvtres.read.1.tlog

     文件          2  2015-08-11 21:50  fillhole\fillhole\Debug\link.4812-cvtres.write.1.tlog

     文件          2  2015-08-11 21:50  fillhole\fillhole\Debug\link.4812.read.1.tlog

............此处省略35个文件信息

评论

共有 条评论