28#include <eris_utils_image.h>
36eris_scharr_x(cpl_image* in) {
38 cpl_image* scharr_x = NULL;
39 double* pscharr_x = NULL;
43 scharr_x = cpl_image_duplicate(in);
44 pscharr_x = cpl_image_get_data_double(scharr_x);
45 pin = cpl_image_get_data_double(in);
46 cpl_size sx = cpl_image_get_size_x(in);
47 cpl_size sy = cpl_image_get_size_y(in);
49 for(cpl_size i = 1; i < sx - 1;i++) {
50 for(cpl_size j = 1; j < sy - 1;j++) {
51 pscharr_x[i + j*sx] = 3 * pin[i-1 + (j+1)*sx] - 3 * pin[i + 1+ (j+1)*sx]+
52 10 * pin[i - 1 + j*sx] - 10 * pin[i + 1 + j*sx]+
53 3 * pin[i - 1 + (j-1) * sx] - 3 * pin[i + 1 + (j-1) * sx];
71eris_scharr_y(cpl_image* in) {
73 cpl_image* scharr_y=NULL;
74 double* pscharr_y=NULL;
77 scharr_y = cpl_image_duplicate(in);
78 pscharr_y = cpl_image_get_data_double(scharr_y) ;
79 pin = cpl_image_get_data_double(in);
80 cpl_size sx = cpl_image_get_size_x(in) ;
81 cpl_size sy = cpl_image_get_size_y(in);
83 for(cpl_size i = 1;i < sx-1;i++) {
84 for(cpl_size j = 1;j < sy-1;j++) {
85 pscharr_y[i+j*sx]=3*pin[i-1+(j+1)*sx]+10*pin[i+(j+1)*sx]+3*pin[i+1+(j+1)*sx]+
86 -3*pin[i-1+(j-1)*sx]-10*pin[i+(j-1)*sx]-3*pin[i+1+(j-1)*sx];
103eris_sobel_lx(cpl_image* in) {
105 cpl_image* lx = NULL;
109 lx = cpl_image_duplicate(in);
110 plx = cpl_image_get_data_double(lx);
111 pin = cpl_image_get_data_double(in);
112 cpl_size sx = cpl_image_get_size_x(in);
113 cpl_size sy = cpl_image_get_size_y(in);
115 for(cpl_size i=1;i<sx-1;i++) {
116 for(cpl_size j=1;j<sy-1;j++) {
117 plx[i+j*sx]=pin[i-1+(j+1)*sx]-pin[i+1+(j+1)*sx]+
118 2*pin[i-1+j*sx]-2*pin[i+1+j*sx]+
119 pin[i-1+(j-1)*sx]-pin[i+1+(j-1)*sx];
137eris_sobel_ly(cpl_image* in) {
147 ly = cpl_image_duplicate(in);
148 ply = cpl_image_get_data_double(ly);
149 pin = cpl_image_get_data_double(in);
150 cpl_size sx = cpl_image_get_size_x(in);
151 cpl_size sy = cpl_image_get_size_y(in);
153 for(cpl_size i=1;i<sx-1;i++) {
154 for(cpl_size j=1;j<sy-1;j++) {
155 ply[i+j*sx]=pin[i-1+(j+1)*sx]+2*pin[i+(j+1)*sx]+pin[i+1+(j+1)*sx]+
156 -pin[i-1+(j-1)*sx]-2*pin[i+(j-1)*sx]-pin[i+1+(j-1)*sx];