surprisingly fast edge detection
static int edge_detect(dl_matrix3du_t *image_matrix_out, dl_matrix3du_t *image_matrix_in)
{
int line = image_matrix_in->w*3;
int line2 = line * 2;
unsigned int bumpiness = 0;
for (i=(line2);i<((image_matrix_in->w * image_matrix_in->h * 3) - line2);i++)
{
image_matrix_out->item[i] = min(255,(
//image_matrix_in->item[i]+
abs(image_matrix_in->item[i] - image_matrix_in->item[i-3])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i+3])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i-6])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i+6])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i- line])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i+ line])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i-3+ line])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i+3+ line])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i-3- line])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i+3- line])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i- line2])+
abs(image_matrix_in->item[i] - image_matrix_in->item[i+ line2])
)>>2 // divide by 4
);
bumpiness+=image_matrix_out->item[i];
}
return (bumpiness/(line*image_matrix_in->h));
}
Page last modified on February 07, 2022, at 10:26 PM
Powered by
PmWiki