| | |
| | | |
| | | int windows = 0; |
| | | |
| | | void draw_box(image a, int x1, int y1, int x2, int y2) |
| | | { |
| | | int i, c; |
| | | if(x1 < 0) x1 = 0; |
| | | if(x1 >= a.w) x1 = a.w-1; |
| | | if(x2 < 0) x2 = 0; |
| | | if(x2 >= a.w) x2 = a.w-1; |
| | | |
| | | if(y1 < 0) y1 = 0; |
| | | if(y1 >= a.h) y1 = a.h-1; |
| | | if(y2 < 0) y2 = 0; |
| | | if(y2 >= a.h) y2 = a.h-1; |
| | | |
| | | for(c = 0; c < a.c; ++c){ |
| | | for(i = x1; i < x2; ++i){ |
| | | a.data[i + y1*a.w + c*a.w*a.h] = (c==0)?1:-1; |
| | | a.data[i + y2*a.w + c*a.w*a.h] = (c==0)?1:-1; |
| | | } |
| | | } |
| | | for(c = 0; c < a.c; ++c){ |
| | | for(i = y1; i < y2; ++i){ |
| | | a.data[x1 + i*a.w + c*a.w*a.h] = (c==0)?1:-1; |
| | | a.data[x2 + i*a.w + c*a.w*a.h] = (c==0)?1:-1; |
| | | } |
| | | } |
| | | } |
| | | |
| | | void jitter_image(image a, int h, int w, int dh, int dw) |
| | | { |
| | | int i,j,k; |
| | | for(k = 0; k < a.c; ++k){ |
| | | for(i = 0; i < h; ++i){ |
| | | for(j = 0; j < w; ++j){ |
| | | int src = j + dw + (i+dh)*a.w + k*a.w*a.h; |
| | | int dst = j + i*w + k*w*h; |
| | | //printf("%d %d\n", src, dst); |
| | | a.data[dst] = a.data[src]; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | image image_distance(image a, image b) |
| | | { |
| | | int i,j; |
| | |
| | | } |
| | | if(h && w && (src->height != h || src->width != w)){ |
| | | //printf("Resized!\n"); |
| | | IplImage *resized = resizeImage(src, h, w, 1); |
| | | IplImage *resized = resizeImage(src, h, w, 0); |
| | | cvReleaseImage(&src); |
| | | src = resized; |
| | | } |
| | |
| | | exit(0); |
| | | } |
| | | if(h && w ){ |
| | | IplImage *resized = resizeImage(src, h, w, 1); |
| | | IplImage *resized = resizeImage(src, h, w, 0); |
| | | cvReleaseImage(&src); |
| | | src = resized; |
| | | } |
| | |
| | | |
| | | void print_image(image m) |
| | | { |
| | | int i; |
| | | for(i =0 ; i < m.h*m.w*m.c; ++i) printf("%lf, ", m.data[i]); |
| | | int i, j, k; |
| | | for(i =0 ; i < m.c; ++i){ |
| | | for(j =0 ; j < m.h; ++j){ |
| | | for(k = 0; k < m.w; ++k){ |
| | | printf("%.2lf, ", m.data[i*m.h*m.w + j*m.w + k]); |
| | | if(k > 30) break; |
| | | } |
| | | printf("\n"); |
| | | if(j > 30) break; |
| | | } |
| | | printf("\n"); |
| | | } |
| | | printf("\n"); |
| | | } |
| | | |
| | | image collapse_images_vert(image *ims, int n) |
| | | { |
| | | int color = 1; |