2

我正在尝试在使用 dlib 库中的 cv_image 包装器包装的打开的 cv Mat 图像上使用 dlib 的函数 pyramid_up 。

cv::Mat & src

cv_image<rgb_pixel> cimg(src);

pyramid_up(cimg);

和一起很好地工作,同样 acv::Mat很好地与. 但是,当结合使用时,我会从 dlibs interpolation.h 中得到一个错误列表,所有这些都说dlib::cv_imagedlib::array2d<rgb_pixel>dlib::pyramid_upcould not deduce template argument for..

有任何想法吗?

编辑:这个问题很久以前我不记得预期的目的,所以不能说解决方案是否有效。不过,Teresa 的建议似乎很可靠,如果将来发现,请尝试这样做。

4

3 回答 3

1

你设法解决了吗?我成功地使用了 pyramid_up 是这样的:

cv::Mat & src
array2d<bgr_pixel> img;
assign_image(img, cv_image<bgr_pixel>(src));
于 2016-09-19T10:17:00.973 回答
0

您可以改用pyrUp OpenCV 函数。它看起来很相似。这是一些参考:OpenCv 3.0 教程

于 2016-09-13T07:10:39.903 回答
-1

我用这段代码来克服这个问题

cv::VideoCapture cap(0);
if (!cap.isOpened())
    {
        cerr << "Unable to connect to camera" << endl;
        getchar();
    }
cv::Mat temp;
cap.read(temp);
cv::imwrite("img/Latest.jpg", temp); // saving image to folder using openCV
matrix<rgb_pixel> test2;
load_image(test2, "img/Latest.jpg");
pyramid_up(test2);

它对我有用,这个想法是保存图像并再次加载它,matrix<rgb_pixel> 以便pyramid_up()可以处理它。

注意:如果您在实时视频中运行识别,我认为这不会有帮助。

于 2018-05-28T18:15:40.953 回答