提取骨架 細化

2021-04-30 08:54:02 字數 2077 閱讀 8772

bool iscontourp(int x,int y, iplimage *src_img)

;int linebytes =src_img->widthstep;

byte *lpptr= (byte*)(src_img->imagedata+linebytes*y)+x;

p[2]=*(lpptr-linebytes) ? true:false;

p[3]=*(lpptr-linebytes+1) ? true:false;

p[4]=*(lpptr+1) ? true:false;

p[5]=*(lpptr+linebytes+1) ? true:false;

p[6]=*(lpptr+linebytes) ? true:false;

p[7]=*(lpptr+linebytes-1) ? true:false;

p[8]=*(lpptr-1) ? true:false;

p[9]=*(lpptr-linebytes-1) ? true:false;

int np=0;//鄰域不為零節點總數

int tp=0;//鄰域節點由0變成1的次數

for (int i=2; i<10; i++)

}int p246= p[2] && p[4] && p[6];

int p468= p[4] && p[6] && p[8];

int p24= p[2] && !p[3] && p[4] && !p[5] && !p[6] && !p[7] && !p[8] && !p[9];

int p46= !p[2] && !p[3] && p[4] && !p[5] && p[6] && !p[7] && !p[8] && !p[9];

int p68= !p[2] && !p[3] && !p[4] && !p[5] && p[6] && !p[7] && p[8] && !p[9];

int p82= p[2] && !p[3] && !p[4] && !p[5] && !p[6] && !p[7] && p[8] && !p[9];

int p782= p[2] && !p[3] && !p[4] && !p[5] && !p[6] && p[7] && p[8] && !p[9];

int p924= p[2] && !p[3] && p[4] && !p[5] && !p[6] && !p[7] && !p[8] && p[9];

int p346= !p[2] && p[3] && p[4] && !p[5] && p[6] && !p[7] && !p[8] && !p[9];

int p568= !p[2] && !p[3] && !p[4] && p[5] && p[6] && !p[7] && p[8] && !p[9];

int p689= !p[2] && !p[3] && !p[4] && !p[5] && p[6] && !p[7] && p[8] && p[9];

int p823= p[2] && p[3] && !p[4] && !p[5] && !p[6] && !p[7] && p[8] && !p[9];

int p245= p[2] && !p[3] && p[4] && p[5] && !p[6] && !p[7] && !p[8] && !p[9];

int p467= !p[2] && !p[3] && p[4] && !p[5] && p[6] && p[7] && !p[8] && !p[9];

int p2468= p24 || p46 || p68 || p82;

int p3333= p782 || p924 || p346 || p568 || p689 || p823 || p245 || p467;

//判定條件第乙個由數字影象處理上得到,由於結果不夠滿意,又加上兩個條件

return ( !p246 && !p468 && (np<7) && (np>1) && (tp==1) ) || p2468 || p3333;

}void thin( iplimage *src_img)//細化輪廓,得到單畫素輪廓

//if

}  //for

}  //for

} while( remove_num);

}

骨架提取演算法應用

1 引言 根據個人理解,骨架提取 顧名思義 就是根據各個連通區域,將其抽離出與其輪廓近似的單畫素表示形態。以便於直觀觀察 影象的後繼處理。因此可以將其視為影象處理中的預處理,其操作是基於二值圖。為了更好的提取影象骨架,必要時需要對影象進行相應的預處理 比如去噪 濾波 形態學變換等 我的應用主要集中在...

視覺組學習內容 Zhang Suen骨架提取演算法

封裝 這是視覺組dalao給大家布置的學期末學習任務。因為之前沒有接觸過linux,環境也沒有配置好,對很多操作不夠熟悉,做這個任務從頭到尾大約花了兩天合計15個小時的時間,中間還問過dalao兩個小時左右的問題 此處給大佬比心 雖然和大佬說的三個小時相去甚遠但是最後還是趕在ddl之前完成了任務。總...

骨架提取 Khalid Sheed的K3M演算法

影象的骨架似乎沒有嚴格的數學定義,可認為是影象細化 thinning 的產物 中軸可以看作一種骨架,其有嚴格的數學定義 目前已經有許多細化演算法,這些演算法得到的骨架可能略有差異。本文實現了khalid sheed 的 k3m演算法。該演算法屬於迭代腐蝕邊界的一類演算法,該類演算法的思想是,假定從二...