Red de conocimiento informático - Material del sitio web - ¿Algoritmo de detección de bordes del operador Robert basado en Matlab? ¿Cómo escribirlo?

¿Algoritmo de detección de bordes del operador Robert basado en Matlab? ¿Cómo escribirlo?

El propio Matlab tiene funciones de biblioteca. Llame directamente

código VC:

void BianYuanJianCeDib::

{

LPBYTE p_data //Puntero al área de datos de la imagen original;

int ancho,alto; //La longitud y el ancho de la imagen original

int i,j //Variable de bucle

int pixel[4] ; // Robert Operador

p_data=this->GetData ();

wide=this->GetWidth ();

height=this->. GetHeight ( );

LPBYTE temp=new BYTE[wide*height]; //Nuevo búfer de imagen

//Establece el valor inicial de la nueva imagen en 255

memset(temp,255, wide*height);

// Dado que se utiliza la plantilla 2*2, para evitar que se supere el límite.

for(j=0;j

for(i=0;i

{

//generar operador Robert

pixel[0]=p_data[j*wide+i];

pixel[1]=p_data[j*wide +i+1];

píxel[2]=p_data[(j+1)*ancho+i];

píxel[3]=p_data[(j+1) * ancho+i+1];

//Procesando el píxel actual

temp[j*wide+i]=(int)sqrt((pixel[0]-pixel[3 ])*(píxel[0]-píxel[3])

+(píxel[1]-píxel[2])*(píxel [1]-píxel[2]));

}

//Copie los datos del búfer al área de datos de la imagen original

memcpy(p_data, temp,wide*height);

//Eliminar buffer

eliminar temp;

}