| | |
| | | return r; |
| | | } |
| | | |
| | | static float get_pixel(image m, int x, int y, int c) |
| | | { |
| | | assert(x < m.w && y < m.h && c < m.c); |
| | | return m.data[c*m.h*m.w + y*m.w + x]; |
| | | } |
| | | static float get_pixel_extend(image m, int x, int y, int c) |
| | | { |
| | | if (x < 0 || x >= m.w || y < 0 || y >= m.h) return 0; |
| | | /* |
| | | if(x < 0) x = 0; |
| | | if(x >= m.w) x = m.w-1; |
| | | if(y < 0) y = 0; |
| | | if(y >= m.h) y = m.h-1; |
| | | */ |
| | | if (c < 0 || c >= m.c) return 0; |
| | | return get_pixel(m, x, y, c); |
| | | } |
| | | static void set_pixel(image m, int x, int y, int c, float val) |
| | | { |
| | | if (x < 0 || y < 0 || c < 0 || x >= m.w || y >= m.h || c >= m.c) return; |
| | | assert(x < m.w && y < m.h && c < m.c); |
| | | m.data[c*m.h*m.w + y*m.w + x] = val; |
| | | } |
| | | static void add_pixel(image m, int x, int y, int c, float val) |
| | | { |
| | | assert(x < m.w && y < m.h && c < m.c); |
| | | m.data[c*m.h*m.w + y*m.w + x] += val; |
| | | } |
| | | |
| | | void composite_image(image source, image dest, int dx, int dy) |
| | | { |
| | | int x,y,k; |
| | |
| | | } |
| | | if (class_id >= 0) { |
| | | int width = im.h * .006; |
| | | if (width < 1) |
| | | width = 1; |
| | | |
| | | /* |
| | | if(0){ |
| | |
| | | if (top < 0) top = 0; |
| | | if (bot > im.h - 1) bot = im.h - 1; |
| | | |
| | | //int b_x_center = (left + right) / 2; |
| | | //int b_y_center = (top + bot) / 2; |
| | | //int b_width = right - left; |
| | | //int b_height = bot - top; |
| | | //sprintf(labelstr, "%d x %d - w: %d, h: %d", b_x_center, b_y_center, b_width, b_height); |
| | | |
| | | draw_box_width(im, left, top, right, bot, width, red, green, blue); |
| | | if (alphabet) { |
| | | image label = get_label_v3(alphabet, labelstr, (im.h*.03)); |
| | |
| | | if (top < 0) top = 0; |
| | | if (bot > show_img->height - 1) bot = show_img->height - 1; |
| | | |
| | | //int b_x_center = (left + right) / 2; |
| | | //int b_y_center = (top + bot) / 2; |
| | | //int b_width = right - left; |
| | | //int b_height = bot - top; |
| | | //sprintf(labelstr, "%d x %d - w: %d, h: %d", b_x_center, b_y_center, b_width, b_height); |
| | | |
| | | float const font_size = show_img->height / 1000.F; |
| | | CvPoint pt1, pt2, pt_text, pt_text_bg1, pt_text_bg2; |
| | | pt1.x = left; |
| | |
| | | black_color.val[0] = 0; |
| | | CvFont font; |
| | | cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, font_size, font_size, 0, font_size * 3, 8); |
| | | cvPutText(show_img, names[class_id], pt_text, &font, black_color); |
| | | cvPutText(show_img, labelstr, pt_text, &font, black_color); |
| | | } |
| | | } |
| | | } |
| | |
| | | cvPutText(img, char_buff, pt1, &font, CV_RGB(0, 0, 0)); |
| | | cvShowImage("average loss", img); |
| | | int k = cvWaitKey(20); |
| | | if (k == 's') cvSaveImage("chart.jpg", img, 0); |
| | | if (k == 's' || current_batch == (max_batches-1)) cvSaveImage("chart.jpg", img, 0); |
| | | } |
| | | #endif // OPENCV |
| | | |
| | |
| | | cvResize(src, new_img, CV_INTER_LINEAR); |
| | | image im = ipl_to_image(new_img); |
| | | cvReleaseImage(&new_img); |
| | | if (use_webcam) cvReleaseImageHeader(&src); |
| | | rgbgr_image(im); |
| | | return im; |
| | | } |
| | |
| | | return out; |
| | | } |
| | | |
| | | float get_pixel(image m, int x, int y, int c) |
| | | { |
| | | assert(x < m.w && y < m.h && c < m.c); |
| | | return m.data[c*m.h*m.w + y*m.w + x]; |
| | | } |
| | | float get_pixel_extend(image m, int x, int y, int c) |
| | | { |
| | | if(x < 0) x = 0; |
| | | if(x >= m.w) x = m.w-1; |
| | | if(y < 0) y = 0; |
| | | if(y >= m.h) y = m.h-1; |
| | | if(c < 0 || c >= m.c) return 0; |
| | | return get_pixel(m, x, y, c); |
| | | } |
| | | void set_pixel(image m, int x, int y, int c, float val) |
| | | { |
| | | if (x < 0 || y < 0 || c < 0 || x >= m.w || y >= m.h || c >= m.c) return; |
| | | assert(x < m.w && y < m.h && c < m.c); |
| | | m.data[c*m.h*m.w + y*m.w + x] = val; |
| | | } |
| | | void add_pixel(image m, int x, int y, int c, float val) |
| | | { |
| | | assert(x < m.w && y < m.h && c < m.c); |
| | | m.data[c*m.h*m.w + y*m.w + x] += val; |
| | | } |
| | | |
| | | void print_image(image m) |
| | | { |
| | | int i, j, k; |