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

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

HelloWorld代码

#include 
#include 

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

解决OpenCV 中imread函数读取不到数据问题_第1张图片

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

解决OpenCV 中imread函数读取不到数据问题_第2张图片

 

解决OpenCV 中imread函数读取不到数据问题_第3张图片

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

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

解决OpenCV 中imread函数读取不到数据问题_第4张图片

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

你可能感兴趣的:(StudyOpenCV,opencv,visual,studio,人工智能)