資源簡介
對于二值化圖像,去除孔洞時采用的方法實際上與去除小區域相同,因此完全可以用同一個函數進行。
這兩個功能可以采取區域生長法來實現。須注意,去除小區域時為保存有用信息,可采用8鄰域探測,去除孔洞時則4鄰域即可,否則容易泄露,出現靠邊緣的孔洞未去除的情況。
代碼片段和文件信息
#include?
#include?
#include???
#include???
#include???
#include???
using?namespace?cv;
using?namespace?std;
void?RemoveSmallRegion(Mat&?Src?Mat&?Dst?int?AreaLimit=50?int?CheckMode=1?int?NeihborMode=0);
int?main()??
{??
double?t?=?(double)getTickCount();
char*?imagePath?=?“E:\\SVM\\1.png“;
char*?OutPath?=?“E:\\SVM\\11.jpg“;
Mat?Src?=?imread(imagePath?CV_LOAD_IMAGE_GRAYSCALE);
Mat?Dst?=?Mat::zeros(Src.size()?CV_8UC1);
//二值化處理
for(int?i?=?0;?i? {??
uchar*?iData?=?Src.ptr(i);
for(int?j?=?0;?j? {??
if(iData[j]?==?0?||?iData[j]==255)?continue;
else?if?(iData[j]?10)??
{??
iData[j]?=?0;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4836??2015-03-05?14:00??HoleFilling.cpp
?????文件???????13124??2015-01-08?21:15??局部.jpg
?????文件???????10491??2015-03-05?14:05??局部_孔洞填充.jpg
評論
共有 條評論