cv::Mat image_data = cv::imread(strImagesFileNames, CV_LOAD_IMAGE_UNCHANGED);
if(image_data.empty())
{
cout<<"strImagesFileNames:"<<strImagesFileNames<<endl;
cerr << endl << "Failed to load image: "<<endl;
continue;
//return 1;
}
交叉编译用的OpenCV版本号是3.4.3,编译过程没有出错,图片路径没有出错,在移植到开发板上后执行却一直提示 Failed to load image;在x86系统上本地编译执行也都没问题,交叉编译后就不行;郁闷了很久,查了很多资料,大部分都是提示图片路径问题;路径中的中英文问题等;
After long a time...
通过用readelf -d fileName
图片一:
图片二:
对比图片一和二发现共享库的版本不一样,而且可以运行可执行文件也多出来两个库;
再对比两个图看下:
图片一:
图片二:
两个可执行文件依赖的库都一样,唯一不一样的是OpenCV的版本号;
至此,问题终于水落石出,真相终于告白天下。谨以此献给同样被此问题困惑的伙伴!!!