Halcon C++混合编程学习之Qt 实现检测焊接点
1 # include "HalconCpp.h"
# include "HDevThread.h"
# include <X11/Xlib.h>
# include <stdio.h> using namespace HalconCpp; // Main procedure
void action()
{ // Local iconic variables
HObject ho_Die, ho_Brightregion, ho_ROI, ho_DieROI;
HObject ho_RawSegmentation, ho_Wires, ho_BallRegion, ho_Balls;
HObject ho_FinalBalls; // Local control variables
HTuple hv_WindowID,hv_WindowID2;
HTuple hv_Width,hv_Height; ReadImage(&ho_Die, "/home/debug/Halcon_Test/Halcon_Qt_Test/DeteBondPoint/die_03.png");
GetImageSize(ho_Die,&hv_Width,&hv_Height);
SetWindowAttr("background_color","black");
OpenWindow(,,hv_Width,hv_Height,,"","",&hv_WindowID);
HDevWindowStack::Push(hv_WindowID);
DispImage(ho_Die,hv_WindowID); Threshold(ho_Die, &ho_Brightregion, , );
ShapeTrans(ho_Brightregion, &ho_ROI, "rectangle2");
ReduceDomain(ho_Die, ho_ROI, &ho_DieROI);
Threshold(ho_DieROI, &ho_RawSegmentation, , );
FillUpShape(ho_RawSegmentation, &ho_Wires, "area", , );
OpeningCircle(ho_Wires, &ho_BallRegion, 15.5);
Connection(ho_BallRegion, &ho_Balls);
SelectShape(ho_Balls, &ho_FinalBalls, "circularity", "and", 0.85, 1.0); if (HDevWindowStack::IsOpen())
SetWindowAttr("background_color","black");
OpenWindow(,,hv_Width,hv_Height,,"","",&hv_WindowID2);
HDevWindowStack::Push(hv_WindowID2);
DispObj(ho_FinalBalls, HDevWindowStack::GetActive()); WaitSeconds();
ClearWindow(hv_WindowID);
ClearWindow(hv_WindowID2); } int main(int argc, char *argv[])
{
// Default settings used in HDevelop (can be omitted)
int ret=;
// SetSystem("width", 700);
// SetSystem("height", 600);
XInitThreads();
action();
return ret;
} 结果如下:

Halcon C++混合编程学习之Qt 实现检测焊接点的更多相关文章
- C# WPF Halcon HDevEngine混合编程
1. WPF+Halcon 引用halcondotnet.dll和hdevenginedotnet.dll XAML中导入命名空间xmlns:halcon=”clr-namespace:HalconD ...
- halcon与C#混合编程进阶版
这篇主要是C#和Halcon的混合编程,在此基础上对按键不同功能的划分,以及图片适应窗口和从本地打开图片. 新手来这里:http://www.cnblogs.com/badguy518/p/55150 ...
- Halcon 17与 c# 混合编程
这篇主要是C#和Halcon的混合编程,在此基础上对按键不同功能的划分,以及图片适应窗口和从本地打开图片. halcon源程序: dev_open_window(0, 0, 512, 512, ' ...
- C++与Java混合编程
现在的程序员,不再像以前一样,掌握一种编程语言就可以混得有模有样了,现实的情况是,真实的项目中,通常是涉及多种编程语言,举几个简单的例子,一个软件为了快速开发,可能是使用Delphi或VB作为界面开发 ...
- 在Qt(C++)中与Python混合编程
一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...
- 【Qt】Qt Quick 之 QML 与 C++ 混合编程详解
Qt Quick 之 QML 与 C++ 混合编程详解 - CSDN博客 专栏:Qt Quick简明教程 - CSDN博客 .
- matlab C++ (VS Qt)混合编程 / mxArray / QT5中文乱码
一.混合编程环境搭建---依据我的情况,分成了4个部分: 1:破解matlab,因为matlab破解不完全,编译器不能使用,会出错.(参考https://blog.csdn.net/a12593012 ...
- VS/Qt C++和Matlab混合编程
最近两天在搞C++和Matlab混合编程,这个中间过程真是让人心酸啊,最后还是搞定成功!现在把这个过程记录一下. 首先自己的电脑本来就安装着matlab2013b,按着网上的说法首先需要输入!mcc, ...
- C# Halcon混合编程中遇到的问题(一)
目标平台 安装64位的halcon的情况下,目标平台必须使用x64而不能使用x86 目标框架 不能使用.Net Framework Client版本,有一些必须的程序集会缺失,测试使用.Net Fra ...
随机推荐
- html5+css3中的background: -moz-linear-gradient 用法
在CSS中background: -moz-linear-gradient 让网站背景渐变的属性,目前火狐3.6以上版本和google浏览器支持这个属性. background: -moz-linea ...
- Xcode 4 插件制作入门
转自:http://www.onevcat.com/2013/02/xcode-plugin/ 2014.5.4更新 对于 Xcode 5,本文有些地方显得过时了.Xcode 5 现在已经全面转向了 ...
- DB2 递归查询
上一篇中讲解了ORACLE中的递归查询,下面我们看一下DB2中如何使用递归查询: 同样的我们先新建一个表来存储以上信息,并插入测试数据: --建表 create table FAMILY ( pers ...
- mysql查询数据库大小和表
每个mysql都有一个库information_schema,里面有一张表TABLES存储了所有数据库表的信息,因此,可以从这张表中查看数据库大小和表大小 查询数据库大小 ,),'GB') as da ...
- 51单片机或PLC驱动3.5寸至52寸的数字TFTLCD屏、VGA接口显示器、电视机
http://www.21easyic.com/yx/VGA%E6%8E%A7%E5%88%B6%E6%9D%BF.htm
- angurlajs 如何绑定Jquery
//绑定Jqueryfunction bindJQuery() { // bind to jQuery if present; jQuery = window.jQuery;//获取windows 的 ...
- protoc-gen-lua
lua里使用proto buffer protoc-gen-lua 官方不维护了,自己维护个:protoc-gen-lua int64支持,将64位int转换成lua的string. message相 ...
- no datanode to stop
昨晚整了半天,遇上的问题是通过start-all.sh无法启动datanode,然后关闭时就会报no datanode to stop ,引起这个的原因是因为我多次格式化,导致namespaceID不 ...
- Android如何判断一个应用在运行
在一个应用中,或一个Service .Receiver中有时候需要判断一个应用是否正在运行,以便进行一些相关的处理,这个时候我们需要得到一个ActivityManager,这个Manager顾名思意就 ...
- 单个SWF文件loading加载详解(转)
通过带宽查看器,可以看到SWF中每帧所占带宽状况.另外,我们还可以在Flash发布设置中,选择生成体积报告. 勾选这一项之后,发布flash时,会自动在fla目录中生成一个名为”文件名 Report. ...