QT OPENCV读取图片一直读取不成功
我用c语言版本的qt和opencv读取图片,视频可以正常读取,但是图片就是不行,图片路径也是对的,后面发现,我用的debug模式,但是链接库的时候,把debug和release中的库都链接进来了。
下面是我的源码,通过按键打开图像
void MainWindow::on_pushButton_open_picture_clicked()
{
printf("96 on_pushButton_open_clicked\n");
printf("97 on_pushButton_open_clicked\n");
printf("98 on_pushButton_open_clicked\n");
printf("99 on_pushButton_open_clicked\n");
cout<<"1111"<<endl;
QString filename = QFileDialog::getOpenFileName(this,
tr("Open Image"),".",tr("Image File (*.jpg *.png *.bmp)"));
QTextCodec *code = QTextCodec::codecForName("gb18030");
// std::string name = code->fromUnicode(filename).data();//filename.toAscii().data()
std::string name = code->fromUnicode(filename).data();
cout<<"2222222"<<endl;
printf("%s\n",name.c_str());
//Mat image_src = cv::imread(name);
//string name="E:/Qt_project/21_0515_Qt_test3/21_0515_Qt_test3/traffic_light_0002.jpg";
// name="E://Qt_project//21_0515_Qt_test3//21_0515_Qt_test3//traffic_light_0002.jpg";
// Mat frame1 = imread("E:/Qt_project/21_0515_Qt_test3/21_0515_Qt_test3/traffic_light_0002.jpg");
frame = imread(name);
cout<<"3"<<endl;
if(frame.empty())
{
QMessageBox msgBox;
msgBox.setText(tr("Image Data Is Null"));
msgBox.exec();
}
else
{
Mat image_copy = frame.clone(); //clone函数创建新的图片
image = Mat2QImage(image_copy);
Label_1->setPixmap(QPixmap::fromImage(image));
}
// close();
}
解决办法
LIBS+=D:/Opencv420/opencv420_build/install/x64/vc14/lib/opencv_*.lib
改为
LIBS+=D:/Opencv420/opencv420_build/install/x64/vc14/lib/opencv_*d.lib