Código fuente de procesamiento de imágenes borrosas
//Soble
void CBmp::RhSobel()
{
Doble temperatura[9];
DWORD m _ Y = m _ pInfo->encabezado BMI altura;
DWORD m _ m_pInfo->encabezado BMI));
BYTE * m_B. =(BYTE *)nuevo carácter[m_Y * m_X];
for(int d = 0; d & ltm _pixels; d++)
{
m _ B[d]= m _ pPixels[d];
}
if((m_pInfo->bmiHeader.biBitCount)==24)
for(int I = 1;i<m_Y-1;i++ )
for(int j = 3; j & lt(m _ X-2); j+=3)
{
for(int n = 0;n <9;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 _ pPixeles [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])+ p>
ABS (temperatura[0]+2 * temperatura[1]+temp[2]-//
temperatura[6]-2 * temperatura[7]-temp[8]) ));
temp[6]-2 * temp[7]-temp[8])));
temp[6]-2 p>
}
Otro
for(int I = 1;i<(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()
{
doble temp1, temp2
DWORD m_Y = m_pInfo->encabezado BMI . altura BIH;
DWORD m_X = WIDTH((m_pInfo-> encabezado BMI . ancho bi)*(m _ pInfo->encabezado BMI . bibitcount));
BYTE * m _ B =(BYTE *)nuevo carácter[m _ Y * m _ X] ;
for(int d = 0; d & ltm _pixel; d++)
{
m _ B[d]= m _ pPixels[d ];
} p>
if(m_pInfo-& gt;bmiHeader.biBitCount==8)
for(int I = 1;i< (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 _ 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 _ pPixeles[I * m _ temperatura 1:temp 2);
}
}
Otros
{
Huidu() ;
for(int I = 1;i<(m _ Y-1);i++)
{
for(int j = 3; j & lt (m_X-5);
{
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]) ; p>
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 _ ;
}
}
}
}