解决OpenCV 中imread函数读取不到数据问题

本人的环境是Qt 5.14.1+VS2017+OpenCV 3.4.16,创建HelloWorld项目后一直读不到图片内容,针对能搜到的经验,全都尝试了还是无果,以下是尝试过程。

HelloWorld代码

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char *argv[])
{

    Mat image = imread("C:/Users/Henry/Desktop/single/IMG_2447.JPG");

    std::cout << image.cols << std::endl;

    std::cout << image.rows << std::endl;

//    resize(image, image, Size(192, 108));

//    imshow("test", image);

//    waitKey(0);

    return 0;
}

1、网上经验-确认图片确实存在,这个我是非常确定的。

2、网上经验-确认路径的书写方式

以下几种我都进行了尝试,均无效。

Mat image = imread("C:/Users/Henry/Desktop/single/IMG_2447.JPG");

Mat image = imread("C://Users//Henry//Desktop//single//IMG_2447.JPG");

Mat image = imread("C:\\Users\\Henry\\Desktop\\single\\IMG_2447.JPG");

 3、网上经验-确认当前工程为Debug还是Release使用对应的库文件和动态连接库文件。

我当前为Debug模式,确认所用的文件均为对应的Debug模式的文件。

LIBS += \
    -LD:/ThridPartyLibrary/opencv/opencv-3.4.16/build/x64/vc14/lib/ \
    -lopencv_world3416d

尝试后还是无效。

4、到这里已经接近崩溃,已经过了三天了,开始病急乱投医,因为之前用的是官网下载的安装版本,所以尝试自己编译opencv,具体教程比较多这里就不详细介绍了。编译完成后,再尝试以上方法,还是无效。厚礼蟹!

5、虽然精神和信心受到极大打击,学习还是要继续。说来也是笨,刚想起来调试,调试发现竟然在我的路径前面出现多余的三个字符!!!

 狂喜,问题终于找到了!!!盲猜是编码问题,然后就去qt中设置文件的编码

 

 果然,路径中出现了乱码,修改后编译运行,成功了!!!

 还是太菜了,要是及时调试不会浪费这么多时间。总归问题也解决了,也成功实现了导入unet网络训练的模型,对目标图片进行预测。

到这里是一个结束,更是一个开始!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

把我格子衫拿来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值