1、在Qt release(非Qt项目,纯C/C++)中使用opencv的imread读取相对路径的图片,报以下错误
可能的原因:imread不能识别Qt路径的命名规则
2、我的解决方法
1)重新创建Qt项目将图片放在qrc中
2)先将图片文件读取成比特流,再使用opencv中imdecode()函数将比特流解码成Mat图像
3)先将图片读取成QImage格式,再将QImage格式转换为Mat格式
Mat src;
QFile file(":/new/prefix1/line.jpg");
if(!file.open(QFile::ReadOnly))
{
qDebug("读取失败");
}
else
{
QByteArray ba = file.readAll();
src = imdecode(vector<char>(ba.begin(), ba.end()), 1);
}
if(src.empty ()){
qDebug("图像为空");
}
3、参考于https://blog.csdn.net/luolaihua2018/article/details/116697553,该博客对原因进行了分析,非常感谢!