如何在qt中使用opencv,还请过来人指教
1个回答
展开全部
Step1>
CMake OpenCV,使用CMake生成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 image!", QMessageBox::Ok);
}
else
{
imshow("giraffe [press any key to exit]", giraffe);
waitKey();
}
return 0;
}
CMake OpenCV,使用CMake生成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 image!", QMessageBox::Ok);
}
else
{
imshow("giraffe [press any key to exit]", giraffe);
waitKey();
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询