zoukankan      html  css  js  c++  java
  • 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"halconcppHalconCpp.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中运行下图所示:

  • 相关阅读:
    查看full gc频率怎么样
    【LeetCode每天一题】Linked List Cycle II(循环链表II)
    【LeetCode每天一题】Word Break()
    【LeetCode每天一题】Candy(分糖果)
    【LeetCode每天一题】Single Number II(数组中单个数字II)
    【LeetCode每天一题】Gas Station(汽油站)
    【LeetCode每天一题】Single Number(数组中单独的数字)
    【LeetCode每天一题】Sum Root to Leaf Numbers(二叉树所有根到叶节点之和)
    【LeetCode每天一题】Longest Consecutive Sequence(最长的连续序列
    【LeetCode每天一题】 Word Ladder(单词阶梯)
  • 原文地址:https://www.cnblogs.com/HappyEDay/p/7872360.html
Copyright © 2011-2022 走看看