opencv+qt(打开图片)

本文介绍如何在VS2013和QT5.6.1环境下,使用32位OpenCV3.4.5库打开图片。涵盖库的编译、项目配置及常见错误解决,适用于初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译好了opencv-32位的库,使用qt和vs分别写个demo,利用opencv库打开一张图片
准备:
vs2013
opencv3.4.5版本的源码
qt5.6.1(msvc2013-32bit)
开始:
1、使用vs2013编译(我选的32位的)opencv库(此处略,网上搜索opencv编译),debug和release都编译,debug生成的库文件带d,例如xxxd.lib或dll,release生成库文件不带d
在这里插入图片描述
2、新建qt控制台项目(qtOpenTest)并选择msvc2013-32bit编译器(注意,编译器是32位的,因为opencv编译成了32位的库)
在这里插入图片描述
在这里插入图片描述
3、配置项目的.pro文件,下图CONFIG的配置,debug链接的是后面带"d"的静态库,如opencv_core345d等等,release链接的是不带"d"的静态库
在这里插入图片描述
4、点击运行,提示出现缺少xxx.dll,或者是出现控制台程序的黑色窗口,但是无法正常打开指定路径的图像文件,需要把的xxx.dll放入qtOpenTest工程的debug或者release文件夹下(下图中程序可以运行,但是无法正常打开图片,也没有提示缺少xxx.dll文件)
在这里插入图片描述
5、采用vs2013测试,找出运行程序所依赖的库文件,在vs2013新建vsOpencvTest控制台工程,并配置如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以下是一个简单的示例代码,演示了如何利用VS+Opencv+QT打开一张图片,对打开图片进行拉普拉斯处理和sobel梯度处理。 ```cpp #include <QtWidgets/QApplication> #include <QtWidgets/QMainWindow> #include <QFileDialog> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> using namespace cv; int main(int argc, char *argv[]) { QApplication a(argc, argv); // Create a main window QMainWindow window; window.show(); // Open a file dialog to select an image file QString file_path = QFileDialog::getOpenFileName(&window, "Open Image", "", "Image Files (*.png *.jpg *.bmp)"); // Read the selected image file Mat src_img = imread(file_path.toStdString()); // Create a new window to display the original image namedWindow("Original Image"); imshow("Original Image", src_img); // Apply the Laplacian filter to the image Mat laplacian_img; Laplacian(src_img, laplacian_img, CV_16S, 3); convertScaleAbs(laplacian_img, laplacian_img); namedWindow("Laplacian Image"); imshow("Laplacian Image", laplacian_img); // Apply the Sobel filter to the image Mat sobel_img; Sobel(src_img, sobel_img, CV_16S, 1, 0); convertScaleAbs(sobel_img, sobel_img); namedWindow("Sobel Image"); imshow("Sobel Image", sobel_img); waitKey(0); return a.exec(); } ``` 这段代码使用Qt来创建一个窗口,然后使用OpenCV打开和处理图像。在这个示例中,我们首先打开一个文件对话框,让用户选择一个图像文件,然后读取所选择的图像文件。接着,我们创建了三个窗口,分别用于显示原始图像、拉普拉斯处理后的图像和Sobel梯度处理后的图像。在处理图像时,我们使用OpenCV的Laplacian和Sobel函数。最后,我们使用waitKey函数等待用户关闭所有打开的窗口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值