| | |
| | | return out; |
| | | } |
| | | |
| | | image crop_image(image im, int dr, int dc, int h, int w) |
| | | { |
| | | image cropped = make_image(h, w, im.c); |
| | | int i, j, k; |
| | | for(k = 0; k < im.c; ++k){ |
| | | for(j = 0; j < h; ++j){ |
| | | for(i = 0; i < w; ++i){ |
| | | int r = j + dr; |
| | | int c = i + dc; |
| | | float val = 128; |
| | | if (r >= 0 && r < im.h && c >= 0 && c < im.w) { |
| | | val = get_pixel(im, r, c, k); |
| | | } |
| | | set_pixel(cropped, j, i, k, val); |
| | | } |
| | | } |
| | | } |
| | | return cropped; |
| | | } |
| | | |
| | | // #wikipedia |
| | | image resize_image(image im, int h, int w) |
| | | { |
| | |
| | | image im = load_image(filename, 0,0); |
| | | image small = resize_image(im, 63, 65); |
| | | image big = resize_image(im, 512, 513); |
| | | image crop = crop_image(im, 10, 50, 100, 100); |
| | | image crop2 = crop_image(im, -50, -30, 400, 291); |
| | | show_image(im, "original"); |
| | | show_image(small, "smaller"); |
| | | show_image(big, "bigger"); |
| | | show_image(crop, "crop"); |
| | | show_image(crop2, "crop2"); |
| | | cvWaitKey(0); |
| | | } |
| | | |