halcon学习笔记——QT和Halcon 11 配置c++混合编程

QT和halcon的配置实验了一阵,总是不太成功;后来用qt+vs版本的,并且用vs编译器才配合成功,这里和大家分享一下经验。

         (1)首先下载qt-opensource-windows-x86-msvc2010-5.5.1.exe,这个官网上就有;

         (2)下载qt-vs-addin-1.2.4-opensource.exe,这个官网也有,没有可以去这个网站(很全):http://www.qtcn.org/bbs/read-htm-tid-1075.html;

         (3)下载安装个msvc2010,这个自己在网上找资源吧;

         (4)下载安装halcon11,这个也自己找一下资源吧;

         (5)我的系统是win7+64位,安装时候先安装msvc2010,再安装qt-opensource,再安装qt-vs就可以,按着操作走就可以;

         (6)以上都安装完成后,打开msvc2010会看到多QT选项,如下:

          (7)点击QT5>>QT Options,弹出对话框里点击添加“add”,将qt目录里msvc2010添加进去,点击ok如下图:

            (8)以上是配置qt+vs;现在配置halcon,在vs添加halcon的头文件目录和lib目录;新建一个qt项目,然后选择qt项目的属性,在属性里面选择:配置属性>>vc++目录>>包含目录,选择编辑添加halcon的include目录如下图:

       (9)继续选择:配置属性>>vc++目录>>引用目录,选择halcon的lib目录如下图:

 

          (10)继续选择:配置属性>>vc++目录>>库目录,同样选择halcon的lib目录;

          (11)选择:配置属性>>连接器>>附加库目录,同样选择halcon的lib目录;

          (12)以上基本配置完成;可以在main.cpp代码中添加如下,看看是否成功;这个实例是halcon手册中,Solution Guide I Basics中,4.1.4 A First Example的一个例子。 

#include <QtWidgets/QApplication>  
#include"Halcon.h"  
#include"cpp/HalconCpp.h"  
#include"halconcpp\HalconCpp.h"  
#include <QPalette>  
#include <QWidget>  
#include <QMessageBox>  
# include <stdio.h>  
  
 using namespace Halcon;  
 using namespace HalconCpp;  
  
int main(int argc, char *argv[])  
{  
    QApplication a(argc, argv);  
    testq w;  
  
    HalconCpp:: HObject  ho_Image, ho_BrightPixels, ho_Particles;  
    HalconCpp:: HTuple  hv_Area, hv_Row, hv_Column,area;  
  
     ReadImage(&ho_Image, "particle");  
     Threshold(ho_Image, &ho_BrightPixels, 120, 255);  
     Connection(ho_BrightPixels, &ho_Particles);  
         AreaCenter(ho_Particles, &hv_Area, &hv_Row, &hv_Column);  
  
      int s0,s1;  
      s0=hv_Area[0];  
      s1=hv_Area[1];  
  
      QMessageBox msgBox;  
      msgBox.setText(QString::number(s0));  
      msgBox.exec();  
      
      QMessageBox msgBox2;  
      msgBox2.setText(QString::number(s1));  
      msgBox2.exec();  
  
    w.show();  
    return a.exec();  
}  

 


       运行时候会弹出AreaCenter的里面第一个联通区域里的面积,如下图弹出“1847”:

 

 

       这个“1847”就是Area的第一个至,如halcon中运行下图所示:

 

posted @ 2017-11-21 11:29  HappyEDay  阅读(4703)  评论(0编辑  收藏  举报