如何在Qt中使用OpenCV
用Qt可以方便地创造好看的GUI,要是能和OpenCV结合起来我们就能写出蛮好的一个处理或者管理图片的软件。怎么在Qt中使用OpenCV呢?请看下文:
注:我的Qt版本4.7.4(C:\QtSDK\Desktop\Qt\4.7.4),OpenCV版本2.3.1(E:\opencv),Qt下有MinGW编译器(C:\QtSDK\mingw)
具体步骤:
Step1>
CMake OpenCV,使用CMake(http://www.cmake.org/)生成OpenCV库的makefile文件,需要注意的是解压出来的OpenCV存储路径中的文件夹不要带有空格或者中文(我的是E:\OpenCV,不要用类似于E:\工程\opencv, E:\Open CV这种),打开CMake,指定源码位置(就是OpenCV解压出来的地方)和存放生成文件的地方,Configure弹出如图对话框,选择MinGW Makefiles和Specify native compilers
跳出对话框用以指定C++和C的编译器路径,C用gcc.exe,在QtSDK目录下的mingw/bin子目录中,C++用g++.exe:
然后再次Configure,无错误后选中WITH_QT
再次Configure会出现下图信息提示找不到Qt的Qmake可执行文件
手动指定Qmake.exe所在目录(在.\QtSDK\Desktop\Qt\4.7.4\mingw\bin下面):
再次Configure,无错误后 Generate。
Step2>
编译
1> Cmd命令 转到Generate到的目录(我的是如上图所示的E:\opencv\MinGW)
>> cd E:\opencv\MinGW
2> Cmd命令 编译文件
>> mingw32-make
3> Cmd命令 编译INSTALL
>> mingw32-make install
过程如图:
Step3>
在存放Generate生成的目录下有一个install目录,编译好的所有结果都在这里啦,包括bin,lib和include,把bin目录放到环境变量path中,其实可以把整个install目录拷贝到某个地方使用,这样就可以把opencv目录里面的内容全删了,省的占空间。我就把install里面的内容全都搬到了E盘下的OpenCVforQt目录下了(0.0)。
Example:
在用QtCreator和OpenCV的时候,修改用到opencv的工程的.pro文件就可以了,添加include和lib,例如:
QT += core gui
TARGET = Win_OpenCV_Test
TEMPLATE = app
INCLUDEPATH += E:\OpenCVforQt\include
INCLUDEPATH += E:\OpenCVforQt\include\opencv
INCLUDEPATH += E:\OpenCVforQt\include\opencv2
LIBS += E:\OpenCVforQt\lib\libopencv_core231.dll.a
LIBS += E:\OpenCVforQt\lib\libopencv_highgui231.dll.a
LIBS += E:\OpenCVforQt\lib\libopencv_imgproc231.dll.a
SOURCES += main.cpp
一个例子:
Code Snippet
#include <QtGui/QApplication>
#include <QtGui/QMessageBox>
#include <cv.h>
#include <highgui.h>
using namespace cv;
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Mat giraffe = imread("f:/giraffe.jpg");
if(giraffe.empty())
{
QMessageBox::warning(0, "Warn", "Empty p_w_picpath!", QMessageBox::Ok);
}
else
{
imshow("giraffe [press any key to exit]", giraffe);
waitKey();
}
return 0;
}
End :
如果你需要我编译好的文件(win64 for Qt),可以留下邮箱我会即时发给你。
转载于:https://blog.51cto.com/11496263/1874731