¿Algoritmo de detección de bordes del operador Robert basado en Matlab? ¿Cómo escribirlo?
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; }