问题描述
我正在使用以下代码将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版本addLegend
似乎太旧了。从dlib 19.7
网站下载时,我也遇到类似的错误。它已在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
更改为19.19
,
https://github.com/davisking/dlib/commits/master/dlib/opencv/cv_image.h