資源簡介
區域生長算法的簡單實現,人工選取種子,對二值圖像的前景進行分割。

代碼片段和文件信息
#include?
#include?
#include?
using?namespace?std;
using?namespace?cv;
//?8?鄰域
static?Point?connects[8]?=?{?Point(-1?-1)?Point(0?-1)?Point(1?-1)?Point(1?0)?Point(1?1)?Point(0?1)?Point(-1?1)?Point(-1?0)};
int?main()
{
//?原圖
Mat?src?=?imread(“img2.jpg“?0);
//?結果圖
Mat?res?=?Mat::zeros(src.rows?src.cols?CV_8U);
//?用于標記是否遍歷過某點
Mat?flagMat;
res.copyTo(flagMat);
//?二值圖像
Mat?bin;
threshold(src?bin?80?255?CV_THRESH_BINARY);
//?初始3個種子點
stack?seeds;
seeds.push(Point(0?0));
seeds.push(Point(186?166));
seeds.push(Point(327?43));
res.at(0?0)?=?255;
res.at(166?186)?=?255;
res.at(43?327)?=?255;
//int?index=0;
//int?ii?=?0;
//int?time[10]?=?{?200?5000?8000?15000?20000?25000?40000?45000?50000?52000?};
while?(!seeds.empty())
{
//if?(index++?==?time[ii])
//{
// char?buf[24];
// sprintf(buf?“r%d.jpg“?ii++);
// imwrite(buf?res);
//}
Point?seed?=?seeds.top();
seeds.pop();
//?標記為已遍歷過的點
flagMat.at(seed.y?seed.x)?=?1;
//?遍歷8鄰域
for?(size_t?i?=?0;?i?8;?i++)
{
int?tmpx?=?seed.x?+?connects[i].x;
int?tmpy?=?seed.y?+?connects[i].y;
if?(tmpx?0?||?tmpy?0?||?tmpx?>=?src.cols?||?tmpy?>=?src.rows)
continue;
//?前景點且沒有被標記過的點
if?(bin.at(tmpy?tmpx)?!=?0?&&?flagMat.at(tmpy?tmpx)?==?0)
{
res.at(tmpy?tmpx)?=?255;?//?生長
flagMat.at(tmpy?tmpx)?=?1;?//?標記
seeds.push(Point(tmpx?tmpy));?//?種子壓棧
}
}
}
imshow(“RES“res);
imwrite(“res.jpg“?res);
waitKey(0);
return?1;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????505580??2015-04-19?17:07??RegionGrow\Debug\RegionGrow.ilk
?????文件????2354176??2015-04-19?17:07??RegionGrow\Debug\RegionGrow.pdb
?????文件?????338050??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\main.obj
?????文件???????1499??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\RegionGrow.log
?????文件????????774??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\RegionGrow.tlog\cl.command.1.tlog
?????文件??????18838??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\RegionGrow.tlog\CL.read.1.tlog
?????文件????????748??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\RegionGrow.tlog\CL.write.1.tlog
?????文件???????1268??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\RegionGrow.tlog\li
?????文件???????1598??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\RegionGrow.tlog\li
?????文件????????726??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\RegionGrow.tlog\li
?????文件????????200??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\RegionGrow.tlog\RegionGrow.lastbuildstate
?????文件?????617472??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\vc120.idb
?????文件????1363968??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\vc120.pdb
?????文件??????21290??2012-08-16?23:27??RegionGrow\RegionGrow\img2.jpg
?????文件???????1730??2015-04-19?17:07??RegionGrow\RegionGrow\main.cpp
?????文件???????4335??2015-04-17?16:34??RegionGrow\RegionGrow\RegionGrow.vcxproj
?????文件????????956??2015-04-17?16:34??RegionGrow\RegionGrow\RegionGrow.vcxproj.filters
?????文件??????15170??2015-04-19?17:07??RegionGrow\RegionGrow\res.jpg
?????文件??????15535??2015-04-19?11:42??RegionGrow\RegionGrow\seed.jpg
????I.A.SH.????109568??2015-04-19?16:43??RegionGrow\RegionGrow\Thumbs.db
?????文件???13828096??2015-04-19?17:08??RegionGrow\RegionGrow.sdf
?????文件????????976??2015-04-17?16:31??RegionGrow\RegionGrow.sln
????..A..H.?????19456??2015-04-19?17:08??RegionGrow\RegionGrow.v12.suo
?????目錄??????????0??2015-04-19?17:07??RegionGrow\RegionGrow\Debug\RegionGrow.tlog
?????目錄??????????0??2015-04-19?17:07??RegionGrow\RegionGrow\Debug
?????目錄??????????0??2015-04-19?17:08??RegionGrow\Debug
?????目錄??????????0??2015-04-19?17:07??RegionGrow\RegionGrow
?????目錄??????????0??2015-04-19?17:08??RegionGrow
-----------?---------??----------?-----??----
?????????????19222009????????????????????28
............此處省略1個文件信息
- 上一篇:模糊理論及其在故障診斷中的應用
- 下一篇:Zsa.rar
評論
共有 條評論