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