再次求救區域成長法 |
答題得分者是:JerryKuo
|
yingnan1066
一般會員 發表:2 回覆:2 積分:0 註冊:2003-04-01 發送簡訊給我 |
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
yingnan1066你好:
提個大概步驟給你參考
(1)首先圖片要做一次過濾(filter),例如:將圖片顏色分成256個顏色,不一定是256色(自己定義的256色也可以),4096色也都可以(不過切出來圖會很複雜),如此下一步驟撒種子,成長得到的區域(region),才會一塊一塊的。
(2)假設你是用256色,均勻的撒佈種子於影像中,針對影像中每個種子的上下左右鄰居做比對,相似的兩個像素就給一個index,如果遇到相鄰的兩點都有index,index大的就被index小的取代,其他相同index也一併取代,index範圍0~255。
(3)把相同index的區域mask為一個區域,如此就能得到許多區域
初步的region growing大概步驟就是這樣,還有許多小細節要自
己思考解決,在這裡只能提供小弟的淺見,程式我沒有,哈哈...
|
swindler
一般會員 發表:13 回覆:22 積分:17 註冊:2003-01-08 發送簡訊給我 |
我的做法是先將影像二值化 丟到陣列中 白色的地方值設-1 黑色為0
主程式跑迴圈 副程式比較上下左右 (八相鄰)
假設 //主程式 (遇到-1就標記,然後丟到副程式比較相鄰的點) 示意如下:
int num=0;
for (int y = 0; y < H; y++)
for (int x = 0; x < W; x++)
{ if (img[y][x]==-1)
{
num=num+1;
search(img,y,x,H,W,num);
}
} //副程式search(),主程式要丟影像高寬,矩陣座標給副程式 //判斷讀到影像邊緣就不繼續讀取 bool InRange(int i, int j, int H, int W)
{
if ((i>=0) && (i
|
yingnan1066
一般會員 發表:2 回覆:2 積分:0 註冊:2003-04-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |