基於c++的灰度線性變換
阿新 • • 發佈:2019-02-19
灰度的線性變換:正比+反比
DB=f(DA)=k*DA+b
DA:輸入影象的灰度 DB:輸出影象的灰度
k:線性函式的斜率 b :在y軸的截距
當k>1時,輸出影象的對比度增加
當k<1時,對比度減小。
LPSTR lpDIBBits; //指向源DIB影象的指標 long lWidth; //源影象寬度 long lHeight; //源影象高度 float k; //斜率 float b; //截距 //------------------------------ for(int i=0;i<lHeight;i++) for(int j=0;j<lWidth;j++) { lpSrc=(unsighned char *)lpDIBBits+lLineBytes*i+j;//lpDIBBits[i][j] fTemp=k*(DA)+b;//中間變數 if(fTemp>255) //超過灰度上限 *lpSrc=255; else if(fTemp<0)//超過灰度下限 *lpSrc=0; else *lpSrc=(unsigned char)(fTemp+0.5);//四捨五入 }//for_j