大家好,說到做到,今天更新第二篇。我給大家帶過來的這一系列文章主要與
常用影像處理演算法為主,主要以C語言編寫。每天只會放上一種處理方法,
有興趣的朋友可以跟上。代碼都是經過驗證的保證正確,有什麼問題或想法就給我
評論或留言吧,需要你的鼓勵。
今天給大家帶來的是灰階映像的 二值化
首先我們 預設全域變數為 HEIGHT(圖片高度),WIDTH(圖片寬度)
之後
宏模組定義
#define HIGHT 255
#define LOW 0
#define BYTE unsigned char
在執行二值化函數之前
應該保證給輸出申請一個空間
例如 BYTE *brand_out;
brand_out=(BYTE *)malloc(WIDTH*HEIGHT*sizeof(BYTE));
之後就可以調用 gray2brand(gray,brand_out,T);
gray2brand(BYTE *grayin,BYTE *out,int thresh)原型為
/*****************************************
*功能:灰階映像的二值化
*參數:grayin 為指向灰階映像資料的指標
out為指向處理完後二值化映像資料指標
thresh 為閥值(大於閥值的為HIGHT,否則為:LOW)
*傳回值:無
*******************************************/
gray2brand(BYTE *grayin,BYTE *out,int thresh)
{
int i;
int j;
for(i=0;i<HEIGHT;i++)
for(j=0;j<WIDTH;j++)
{
if(*(grayin+i*WIDTH+j)>=thresh)
{
*(out+i*WIDTH+j)=HIGHT;
}
else
{
*(out+i*WIDTH+j)=LOW;
}
}
}
這次就到這裡了,就是這麼短,這麼簡單,至於你信不信,反正我信了。