image load_image_cv(char *filename, int channels) { IplImage* src = 0; int flag = -1; if (channels == 0) flag = -1; else if (channels == 1) flag = 0; else if (channels == 3) flag = 1; else { fprintf(stderr, "OpenCV can't force load with %d channels\n", channels); } //add debug //printf("%s\n", filename); //flag = 1; if( (src = cvLoadImage(filename, flag)) == 0 ) { printf(" Cannot load image \"%s\"\n", filename); exit(0); } image out = ipl_to_image(src); cvReleaseImage(&src); rgbgr_image(out); return out; }
static std::shared_ptr<image_t> mat_to_image(cv::Mat img_src) { cv::Mat img; cv::cvtColor(img_src, img, cv::COLOR_RGB2BGR); std::shared_ptr<image_t> image_ptr(new image_t, [](image_t *img) { free_image(*img); delete img; }); std::shared_ptr<IplImage> ipl_small = std::make_shared<IplImage>(img); *image_ptr = ipl_to_image(ipl_small.get()); return image_ptr; }