Cómo establecer el umbral en el operador sobel
El umbral del operador sobel se refiere al grad=fx fy obtenido después del cálculo de la derivada parcial de cada píxel. El borde se obtiene mediante la segmentación del umbral de grad.
Dado que el peso se agrega al operador sobel, el resultado será un borde más ancho.
fx=abs(Datos[i 1][j-1] 2*Datos[i 1][j] Datos[i 1][j 1]-Datos[i-1][j- 1]-2*Datos[i-1][j]-Datos[i-1][j 1]);
fy=abs(Datos[i-1][j 1] 2* Datos[i][j 1] Datos[i 1][j 1]-Datos[i-1][j-1]-2*Datos[i][j-1]-Datos[i 1][j- 1]);
Las dos anteriores son las fórmulas de cálculo de la derivada parcial del cálculo ponderado.
La función de sobel es la siguiente:
/****************************** ******** **********************************
operador sobel
* ******************************************* ********* ************/
void sobel(unsigned char Data[][256], unsigned char xData[])
{
int i, j;
int fx, fy, graduado
for(i=1; ilt; 255; i )
for( j=1; jlt; 255; j )
{
fx=abs(Datos[i 1][j-1] 2* Datos[i 1][j] Datos [i 1][j 1]-Datos[i-1][j-1]-2*Datos[i-1][j]-Datos[i-1][j 1]);
fy=abs(Datos[i-1][j 1] 2*Datos[i][j 1] Datos[i 1][j 1]-Datos[i-1 ][j-1]-2* Datos[i][j-1]-Datos[i 1][j-1]
grad=fx fy
); if(gradgt; 100)
xData[i*256 j]=255
else
xData[i*256 j]=0; p>
}
return;
}
El valor anterior de 100 es el umbral.
Este es el programa que utilicé para completar el experimento de procesamiento de imágenes digitales y se puede ejecutar.