Qt MSVC2015环境调用OpenCV、halcon

首先,安装Qt,选择MSVC2015,我的是64位的。

Qt MSVC2015环境调用OpenCV、halcon_第1张图片

MinGW也先勾选上,如果后期要用再安装太麻烦。

Qt MSVC2015环境调用OpenCV、halcon_第2张图片

剩下的按这些勾选,就不多做解释了,可以去看看其他博主的博客,sources是qt的一些例程,按你需要去勾选。

如果你想要安装其他的组件,也根据你的需要来。

接下来是重头戏。

安装好qt后,先新建一个项目工程,随便取个名字,我的就叫做mywork,选择MSVC2015 64bits,其他的就先不用管,等你稍微会点qt自然就知道了,一路next。

Qt MSVC2015环境调用OpenCV、halcon_第3张图片

 Qt MSVC2015环境调用OpenCV、halcon_第4张图片

 建好项目之后,先去你安装的OpenCV路径下..\..\opencv\build把整个include文件夹复制到你qt的工程项目下,然后是..\..\opencv\x64里的vc14(因为我是vs2015版本的,如果你是17版本,你就在vc15中找)文件夹,把lib文件夹和bin文件夹中opencv_world452d.dll(因为我是用debug编译)都复制到你的qt项目里。

halcon也是一样,到你的halcon安装路径下,找到include文件夹,复制到qt项目里,到..\lib\x64-win64中找到halconcpp.lib、halcon.lib,在..\bin\x64-win64找到halconcpp.dll、halcon.dll把他们复制到qt项目文件夹中,最后为了方便管理,建立两个文件夹Halcon,OpenCV,把各自的文件放进去。

Qt MSVC2015环境调用OpenCV、halcon_第5张图片

halcon的:

 Qt MSVC2015环境调用OpenCV、halcon_第6张图片

Qt MSVC2015环境调用OpenCV、halcon_第7张图片

OpenCV的:

 Qt MSVC2015环境调用OpenCV、halcon_第8张图片

 Qt MSVC2015环境调用OpenCV、halcon_第9张图片

 最终效果就是这样了。

最后一步了,添加外部连接库。

Qt MSVC2015环境调用OpenCV、halcon_第10张图片

 右键mytest,添加库,

Qt MSVC2015环境调用OpenCV、halcon_第11张图片

 Qt MSVC2015环境调用OpenCV、halcon_第12张图片

 Qt MSVC2015环境调用OpenCV、halcon_第13张图片

 增加一行,

INCLUDEPATH += $$PWD/OpenCV/include/opencv2

算了,懒得写了,直接出最后结果。

Qt MSVC2015环境调用OpenCV、halcon_第14张图片

读者最后自己修改一下就好了。附上结果可以复制,但要注意你的文件夹名是不是和我的一样,不然的话要自己改下。弄完之后,qmake一下,没有可能会出现找不到文件的错误。

Qt MSVC2015环境调用OpenCV、halcon_第15张图片

 

#opencv
LIBS += -L$$PWD/OpenCV/lib/ -lopencv_world452d

INCLUDEPATH += $$PWD/OpenCV/include
DEPENDPATH += $$PWD/OpenCV/include
INCLUDEPATH += $$PWD/OpenCV/include/opencv2
DEPENDPATH += $$PWD/OpenCV/include/opencv2

#halcon
LIBS += -L$$PWD/Halcon/lib/ -lhalcon
LIBS += -L$$PWD/Halcon/lib/ -lhalconcpp
INCLUDEPATH += $$PWD/Halcon/include
DEPENDPATH += $$PWD/Halcon/include
INCLUDEPATH += $$PWD/Halcon/include/halconcpp
DEPENDPATH += $$PWD/Halcon/include/halconcpp

注:$$PWD是当前文件夹的意思。

然后自己写个代码测试一下OpenCV和halcon看可不可以用。

第一步:包含头文件

Qt MSVC2015环境调用OpenCV、halcon_第16张图片

 第二步:搞两个按钮

Qt MSVC2015环境调用OpenCV、halcon_第17张图片

 第三步:写测试代码

Qt MSVC2015环境调用OpenCV、halcon_第18张图片

 

//widget.hpp
void Widget::on_openImg_clicked()
{
    Mat src = imread("D:\\qtTest\\mywork\\1.png");
    imshow("src", src);
    waitKey(0);
}

void Widget::on_openHImg_clicked()
{
    ReadImage(&Image, "C://Users//dai//Desktop//Image//1.bmp");
    GetImageSize(Image, &Width, &Height);
    if (HDevWindowStack::IsOpen())
        CloseWindow(HDevWindowStack::Pop());
    SetWindowAttr("background_color", "black");
    OpenWindow(0, 0, 800, 533, 0, "visible", "", &WindowHandle);
    HDevWindowStack::Push(WindowHandle);
    if (HDevWindowStack::IsOpen())
        DispObj(Image, HDevWindowStack::GetActive());
}
//widget.h
public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

    HObject  Image;
    HTuple   Width, Height, WindowHandle;

private slots:
    void on_openImg_clicked();

    void on_openHImg_clicked();

初学者的话就不要直接抄了,作者比较懒,没有把所有东西都讲清楚,代码直接搬可能会出错。

完结撒花。累死了。。。

你可能感兴趣的:(qt5,opencv)