當前位置:編程學習大全網 - 源碼下載 - 圖像處理源代碼

圖像處理源代碼

我之前的圖像處理裏面寫的,用的是C++,但是處理流程是壹樣的,大家可以參考壹下。

//Soble

void CBmp::RhSobel()

{

雙溫[9];

DWORD m _ Y = m _ pInfo-& gt;BMI header . BIH height;

DWORD m _ X = WIDTH((m _ pInfo-& gt;BMI header . bi width)*(m _ pInfo-& gt;BMI header . bibitcount));

BYTE * m _ B =(BYTE *)new char[m _ Y * m _ X];

for(int d = 0;d & ltm _像素;d++)

{

m _ B[d]= m _ pPixels[d];

}

if((m _ pInfo-& gt;bmiHeader.biBitCount)==24)

for(int I = 1;我& ltm _ Y-1;i++)

for(int j = 3;j & lt(m _ X-2);j+=3)

{

for(int n = 0;n & lt9;n+=3)

{

temp[n]=(m _ B[(I-1+n/3)* m _ X+j-3]+m _ B[(I-1+n/3)* m _ X+j-2]+m _ B[(I-1+n/3)* m _ X+j-1])/3;

temp[n+1]=(m _ B[(I-1+n/3)* m _ X+j]+m _ B[(I-1+n/3)* m _ X+j+1]+m _ B[(I-1+n/3)* m _ X+j+2])/3;

temp[n+2]=(m _ B[(I-1+n/3)* m _ X+j+3]+m _ B[(I-1+n/3)* m _ X+j+4]+m _ B[(I-1+n/3)* m _ X+j+5])/3;

}

m _ pPixels[I * m _ X+j]= m _ pPixels[I * m _ X+j+1]= m _ pPixels[I * m _ X+j+2]=//

(BYTE((ABS(temp[2]+2 * temp[5]+temp[8]-//

temp[0]-2*temp[3]-temp[6])+

ABS(temp[0]+2 * temp[1]+temp[2]-//

temp[6]-2 * temp[7]-temp[8]))));

}

其他

for(int I = 1;我& lt(m _ Y-1);i++)

{

for(int j = 1;j & lt(m _ X-1);j++)

{

m _ pPixels[I * m _ X+j]=(ABS(m _ B[(I-1)* m _ X+j+1]+(2 * m _ B[(I)* m _ X+j+1])+m _ B[(I+1)* m _ X+j+1]-//

m _ B[(I-1)* m _ X+j-1]-(2 * m _ B[(I)* m _ X+j-1])-m _ B[(I+1)* m _ X+j-1]+

ABS(m _ B[(I-1)* m _ X+j-1]+(2 * m _ B[(I-1)* m _ X+j])+m _ B[(I-1)* m _ X+j+1]-//

m _ B[(I+1)* m _ X+j-1]-(2 * m _ B[(I+1)* m _ X+j])-m _ B[(I+1)* m _ X+j+1]);

}

}

}

//Prewitt

void CBmp::ByPrewitt()

{

double temp1,temp2

DWORD m _ Y = m _ pInfo-& gt;BMI header . BIH height;

DWORD m _ X = WIDTH((m _ pInfo-& gt;BMI header . bi width)*(m _ pInfo-& gt;BMI header . bibitcount));

BYTE * m _ B =(BYTE *)new char[m _ Y * m _ X];

for(int d = 0;d & ltm _像素;d++)

{

m _ B[d]= m _ pPixels[d];

}

if(m _ pInfo-& gt;bmiHeader.biBitCount==8)

for(int I = 1;我& lt(m _ Y-1);i++)

{

for(int j = 1;j & lt(m _ X-1);j++)

{

temp 1 = ABS(m _ B[(I-1)* m _ X+j+1]-m _ B[(I-1)* m _ X+j-1]+m _ B[I * m _ X+j+1]-//

m _ B[I * m _ X+j-1]+m _ B[(I+1)* m _ X+j+1]-m _ B[(I+1)* m _ X+j-1]);

temp 2 = ABS(m _ B[(I-1)* m _ X+j-1]+m _ B[(I-1)* m _ X+j]+m _ B[(I-1)* m _ X+j+1]-//

m _ B[(I+1)* m _ X+j-1]-m _ B[(I+1)* m _ X+j]-m _ B[(I+1)* m _ X+j+1]);

m _ pPixels[I * m _ X+j]=(temp 1 & gt;temp2?temp 1:temp 2);

}

}

其他

{

惠都();

for(int I = 1;我& lt(m _ Y-1);i++)

{

for(int j = 3;j & lt(m _ X-5);j+=3)

{

temp 1 = ABS(m _ B[(I-1)* m _ X+j+3]-m _ B[(I-1)* m _ X+j-3]+m _ B[I * m _ X+j+3]-//

m _ B[I * m _ X+j-3]+m _ B[(I+1)* m _ X+j+3]-m _ B[(I+1)* m _ X+j-3]);

temp 2 = ABS(m _ B[(I-1)* m _ X+j-3]+m _ B[(I-1)* m _ X+j]+m _ B[(I-1)* m _ X+j+3]-//

m _ B[(I+1)* m _ X+j-3]-m _ B[(I+1)* m _ X+j]-m _ B[(I+1)* m _ X+j+3]);

m _ pPixels[I * m _ X+j]= m _ pPixels[I * m _ X+j+1]= m _ pPixels[I * m _ X+j+2]=(temp 1 & gt;temp2?temp 1:temp 2);

}

}

}

}

  • 上一篇:企業的綠色發展包括哪幾方面?
  • 下一篇:蘋果源代碼輸出
  • copyright 2024編程學習大全網