資源簡介
區(qū)域生長法VS實現(xiàn)。C++

代碼片段和文件信息
#include?“stdafx.h“
#include?“growing.h“
g_point::g_point(int?x_i?int?y_i)??
{??
x?=?x_i;??
y?=?y_i;??
lbl?=?SEED;??
}??
g_point::g_point()??
{??
x?=?0;??
y?=?0;??
lbl?=?INIT;??
}??
g_point::g_point(int?x_i?int?y_i?int?lbl_i)??
{??
x?=?x_i;??
y?=?y_i;??
lbl?=?lbl_i;??
}??
void?regionGrowth(IplImage*?img?int*?p_mat?int?x_g?int?y_g?int?threshold_g)??
{??
//常用變量:??
int?x;??
int?y;??
int?gradient?=?0;??
//設(shè)置前次邊緣點??
std::list?cont_pts_pre;??
std::list?*?pcont_pts_pre?=?&cont_pts_pre;
//設(shè)置邊緣點??
std::list?cont_pts;??
std::list?*?pcont_pts?=?&cont_pts;
//種子點+邊緣點?=?下次的種子點??
//上次的邊緣點?=?前次邊緣點(用于下次減少點數(shù))???
cont_pts_pre.push_back(class?g_point(x_g?y_g?CONT));??
p_mat[y_g?*?img->width?+?x_g]?=?SEED;??
std::list::iterator?iter_cont;??
std::list::iterator?iter_prt;??
std::list::iterator?iter_swap;??
while(?!cont_pts_pre.empty()?)??
{??
//一輪生長??
iter_cont?=?cont_pts_pre.begin();??
while(iter_cont?!=?cont_pts_pre.end())??
{??
x?=?(*iter_cont).x;??
y?=?(*iter_cont).y;??
if(?!(x-1<0?||?y-1<0)?)???????????????????????//#1??
{?????
if(p_mat[(y-1)*img->width?+?(x-1)]?==?INIT)??
{??
gradient?=?((char*)(img->imageData?+?y*img->widthStep))[x]?-???
((char*)(img->imageData?+?(y-1)*img->widthStep))[x-1];??
if(abs(gradient)? {??
cont_pts.push_back(class?g_point(x-1?y-1?CONT));??
p_mat[(y-1)*img->width?+?(x-1)]?=?SEED;??
}??
else????????????????????????????????//不滿足閾值要求??
{??
p_mat[(y-1)*img->width?+?(x-1)]?=?INVAL;??
}??
}??
}??
if(?!(x-1<0)?)???????????????????????????????????//#2??
{??
if(p_mat[(y)*img->width?+?(x-1)]?==?INIT)??
{??
gradient?=?((char*)(img->imageData?+?y*img->widthStep))[x]?-???
((char*)(img->imageData?+?(y)*img->widthStep))[x-1];??
if(abs(gradient)? {??
cont_pts.push_back(class?g_point(x-1?y?CONT));??
p_mat[(y)*img->width?+?(x-1)]?=?SEED;??
}??
else????????????????????????????????//不滿足閾值要求??
{??
p_mat[(y)*img->width?+?(x-1)]?=?INVAL;??
}?????????
}??
}??
if(?!(x-1<0?||?y+1?>=?img->height)?)???????????//#3??
{??
if(p_mat[(y+1)*img->width?+?(x-1)]?==?INIT)??
{??
gradient?=?((char*)(img->imageData?+?y*img->widthStep))[x]?-???
((char*)(img->imageData?+?(y+1)*img->widthStep))[x-1];??
if(abs(gradient)? {??
cont_pts.push_back(class?g_point(x-1?y+1?CONT));??
p_mat[(y+1)*img->width?+?(x-1)]?=?SEED;??
}??
else????????????????????????????????//不滿足閾值要求??
{??
p_mat[(y+1)*img->width?+?(x-1)]?=?INVAL;??
}??
}??
}??
if(?!(y+1?>=?img->height)?)????????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????93696??2016-04-05?16:24??Growing4-5\Debug\Growing4-5.exe
?????文件????1280904??2016-04-05?16:24??Growing4-5\Debug\Growing4-5.ilk
?????文件????1838080??2016-04-05?16:24??Growing4-5\Debug\Growing4-5.pdb
?????文件???????1990??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\cl.command.1.tlog
?????文件??????43664??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\CL.read.1.tlog
?????文件???????2304??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\CL.write.1.tlog
?????文件?????337363??2016-04-05?16:22??Growing4-5\Growing4-5\Debug\growing.obj
?????文件?????????75??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\Growing4-5.lastbuildstate
?????文件???????2281??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\Growing4-5.log
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
?????文件??????????2??2016-04-05?16:24??Growing4-5\Growing4-5\Debug\li
............此處省略32個文件信息
評論
共有 條評論