无法将 OpenCV Mat 转换为 dlib arrray2D

Cannot convert OpenCV Mat to dlib arrray2D

我正在使用以下代码将 cv::Mat 转换为 dlib array2D(这是通过 dlib 相关跟踪器跟踪对象所必需的)

int main()
{

cv::Mat img = cv::imread("wine_plant.jpg");
dlib::cv_image<dlib::bgr_pixel> dlib_img(img);



return 0;
}

但是在调试时我收到以下错误消息。

Error   C2440   'initializing': cannot convert from 'const cv::Mat' to 'IplImage'   yolo_cywine c:\users\antho\documents\c++\dlib-19.7\source\dlib\opencv\cv_image.h    37  

基于同一问题已经打开的其他问题,我也尝试了这个

cv::Mat img = cv::imread("wine_plant.jpg");
dlib::cv_image<unsigned char> dlib_img(img);

但结果相同。

我是不是遗漏了什么或者我做错了什么?你能帮帮我吗?

提前致谢。

您的 dlib 版本 19.7 似乎太旧了。我在从其网站下载 dlib 19.19 时也遇到了类似的错误。它已修复 github,但 http://dlib.net/ 在我使用时不包含修复。对我来说,从源代码编译解决了它。较新的 dlib 版本应修复此错误。

这些问题讨论这个问题,

https://github.com/davisking/dlib/issues/1955

https://github.com/davisking/dlib/issues/1949

https://github.com/davisking/dlib/issues/2071

更改为 cv_image.h

https://github.com/davisking/dlib/commits/master/dlib/opencv/cv_image.h

https://github.com/davisking/dlib/commit/54a9a5bbf3267386dd39a82fb792bab1bb60796c#diff-7c8f1a39b770981bf2d3a132da6f083b130b7c52cd994dbccb1d2115f0d729fd

https://github.com/davisking/dlib/commit/a4bf6e1e6afef5c55414164dc4414908d91a8be5#diff-7c8f1a39b770981bf2d3a132da6f083b130b7c52cd994dbccb1d2115f0d729fd