当前位置: 首页 > news >正文

qt+halcon实战

注意建QT工程项目用的是MSVC,如果选成MinGW,则会报错


 

INCLUDEPATH += $$PWD/include
INCLUDEPATH += $$PWD/include/halconcppLIBS += $$PWD/lib/x64-win64/halconcpp.lib
LIBS += $$PWD/lib/x64-win64/halcon.lib

#include "halconcpp/HalconCpp.h"
#include "Halcon.h"
#include "HDevThread.h"using namespace HalconCpp;


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"
#include "QFileDialog"
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);Hlong windID=(Hlong)this->ui->graphicsView->winId();qDebug()<<ui->graphicsView->width()<< " : "<<ui->graphicsView->height();HalconCpp::OpenWindow(0,0,ui->graphicsView->width(),ui->graphicsView->height() ,windID, "visible" , "red",&hv_WindowHandle);SetPart(hv_WindowHandle,0,0,960,1280);SetDraw(hv_WindowHandle,"margin");SetColor(hv_WindowHandle,"red");
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{QString path=QFileDialog::getOpenFileName(this,"Select Imagee","","(*.png *.bmp)");qDebug()<<path;if(path=="")return;HTuple h01=HTuple(path.toLatin1().data());// Local iconic variablesHObject  ho_Image, ho_Region, ho_ConnectedRegions;HObject  ho_SelectedConnectedRegions, ho_ImageReduced, ho_DerivGaussImage;HObject  ho_DerivGaussRegion, ho_DerivGaussConnectedRegions;HObject  ho_SelectedDerivGaussConnectedRegions, ho_RegionFillUp;HObject  ho_RegionDifference, ho_ResultConnectedRegions;HObject  ho_DefectResult;// Local control variablesHTuple  hv_ImageFiles, hv_Index;//关闭程序计数器,图形变量,窗口图形更新//  dev_update_off();//Image Acquisition 01: Code generated by Image Acquisition 01hv_ImageFiles = HTuple();hv_ImageFiles[0] = "1.bmp";HTuple end_val8 = (hv_ImageFiles.TupleLength())-1;HTuple step_val8 = 1;for (hv_Index=0; hv_Index.Continue(end_val8, step_val8); hv_Index += step_val8){qDebug()<<"hhhhh  001";//读取一张图像//ReadImage(&ho_Image, HTuple(hv_ImageFiles[hv_Index]));ReadImage(&ho_Image, h01);qDebug()<<"hhhhh  002";//分割出环形区域Threshold(ho_Image, &ho_Region, 100, 255);qDebug()<<"hhhhh  003";//对区域进行连通处理Connection(ho_Region, &ho_ConnectedRegions);qDebug()<<"hhhhh  004";//过滤出圆环区域SelectShape(ho_ConnectedRegions, &ho_SelectedConnectedRegions, (HTuple("area").Append("circularity")),"and", (HTuple(40000).Append(0.6)), (HTuple(99999).Append(1)));qDebug()<<"hhhhh  005";//将圆环区域中的图像剪切出来ReduceDomain(ho_Image, ho_SelectedConnectedRegions, &ho_ImageReduced);qDebug()<<"hhhhh  006";//将图像和高斯导数进行卷积运算DerivateGauss(ho_ImageReduced, &ho_DerivGaussImage, 1.5, "gradient");qDebug()<<"hhhhh  007";//分割出图像中的轮廓Threshold(ho_DerivGaussImage, &ho_DerivGaussRegion, 9, 50);qDebug()<<"hhhhh  008";//对轮廓区域进行连通处理Connection(ho_DerivGaussRegion, &ho_DerivGaussConnectedRegions);qDebug()<<"hhhhh  009";//获取的轮廓区域SelectShapeStd(ho_DerivGaussConnectedRegions, &ho_SelectedDerivGaussConnectedRegions,"max_area", 70);qDebug()<<"hhhhh  010";//填充该轮廓区域FillUp(ho_SelectedDerivGaussConnectedRegions, &ho_RegionFillUp);qDebug()<<"hhhhh  011";//求轮廓区域和填充的轮廓区域之间的补集区域Difference(ho_RegionFillUp, ho_SelectedDerivGaussConnectedRegions, &ho_RegionDifference);//对补集区域进行连通处理Connection(ho_RegionDifference, &ho_ResultConnectedRegions);qDebug()<<"hhhhh  012";//获取缺陷区域SelectShape(ho_ResultConnectedRegions, &ho_DefectResult, "area", "and", 50, 999);qDebug()<<"hhhhh  013";//显示图像if (HDevWindowStack::IsOpen()){DispObj(ho_Image, HDevWindowStack::GetActive());qDebug()<<"hhhhh  014";}DispObj(ho_Image, hv_WindowHandle);//显示缺陷区域DispObj(ho_DefectResult, hv_WindowHandle);qDebug()<<"hhhhh  0 66666";// stop(); only in hdevelop}}

运行结果:


下面是Halcon导出QT可以使用的c++脚本

FR:徐海涛(hunkxu)

相关文章:

qt+halcon实战

注意建QT工程项目用的是MSVC&#xff0c;如果选成MinGW,则会报错 INCLUDEPATH $$PWD/include INCLUDEPATH $$PWD/include/halconcppLIBS $$PWD/lib/x64-win64/halconcpp.lib LIBS $$PWD/lib/x64-win64/halcon.lib#include "halconcpp/HalconCpp.h" #include &quo…...

Java_POJO

概念 POJO即简单的Java对象&#xff0c;区别于JavaBean JavaBean&#xff1a;特殊的Java类&#xff0c;容易被重用或插入到其他应用程序中去&#xff0c;通过封装属性和方法成为具有某种功能或者处理某个业务的对象 这个类必须有public的无参构造器所有属性都是private的所有属…...

24年安克创新社招入职自适应能力cata测评真题分享北森测评高频题库

第一部分&#xff1a;安克创新自适应能力cata测评 感谢您关注安克创新社会招聘&#xff0c;期待与您一起弘扬中国智造之美。 为对您做出全面的评估&#xff0c;现诚邀您参加我们的在线测评。 测评名称&#xff1a;社招-安克创新自适应能力cata测评 第二部分&#xff1a;安克…...

OpenCV中的圆形标靶检测——findCirclesGrid()(三)

前面说到cv::findCirclesGrid2()内部先使用SimpleBlobDetector进行圆斑检测,然后使用CirclesGridClusterFinder算法类执行基于层次聚类的标靶检测。如下图所示,由于噪声的影响,SimpleBlobDetector检出的标靶可能包含噪声。 而CirclesGridClusterFinder算法类会执行基…...

C++拷贝构造函数、运算符重载函数、赋值运算符重载函数、前置++和后置++重载等的介绍

文章目录 前言一、拷贝构造函数1. 概念2. 特征3. 编译器生成默认拷贝构造函数4. 拷贝构造函数典型使用场景 二、运算符重载函数三、赋值运算符重载函数1. 赋值运算符重载格式2. 赋值运算符只能重载成类的成员函数不能重载成全局函数3.编译器生成一个默认赋值运算符重载4. 运算符…...

视频智能分析平台智能边缘分析一体机视频监控业务平台区域人数不足检测算法

智能边缘分析一体机区域人数不足检测算法是一种集成了先进图像处理、目标检测、跟踪和计数等功能的算法&#xff0c;专门用于实时监测和统计指定区域内的人数&#xff0c;并在人数不足时发出警报。以下是对该算法的详细介绍&#xff1a; 一、算法概述 智能边缘分析一体机区域…...

揭秘MMAdapt:如何利用AI跨领域战胜新兴健康谣言?

MMAdapt: A Knowledge-Guided Multi-Source Multi-Class Domain Adaptive Framework for Early Health Misinformation Detection 论文地址: MMAdapt: A Knowledge-guided Multi-source Multi-class Domain Adaptive Framework for Early Health Misinformation Detection …...

【云手机】数据安全如何保障?

安全办公&#xff0c;信息安全&#xff0c;这是企业使用云手机的初衷和目的&#xff0c;云手机在数据保密&#xff0c;远程办公等功能上有巨大的优势&#xff0c;也为企业提供了支持 首先就是云手机能够实现数据的集中管理和加密存储。所有办公相关的数据都存储在云端的安全服务…...

【算法专题--链表】删除排序链表中的重复元素 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 四、总结与提炼 五、共勉 一、前言 删除排序链表中的重复元素这道题&#xff0c;可以说是--链表专题--&#xff0c;最经典的一道题&#xff0c;也是在面试中频率最高的一道题目&#xff0c;通常在面试中&#xff0…...

【ajax基础01】ajax简介

目录 一&#xff1a;ajax简介 1 什么是ajax 二&#xff1a;ajax使用 1 如何使用ajax 2 axios使用&#xff08;重点&#xff09; 三&#xff1a;案例 四&#xff1a;如何赚钱 一&#xff1a;ajax简介 1 什么是ajax AJAX&#xff08;Asynchronous JavaScript And XML &am…...

[数据集][目标检测]棉花叶子害虫检测数据集VOC+YOLO格式595张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;595 标注数量(xml文件个数)&#xff1a;595 标注数量(txt文件个数)&#xff1a;595 标注类别…...

Nominatim免费的地址解析,逆地址解析,OpenStreetMap开源地图数据【全网最全】

视频学习地址 国内的一些地址解析供应商的API都开始付费了&#xff0c;就想找个免费的地址解析和逆地址解析的应用&#xff0c;最终选择了Nominatim OpenStreetMap 文章目录 一、选型1-1、数据源1-2、地理编码引擎2-1、初尝Nominatim2-1-1、地址解析2-1-2、逆地址解析 2-2、OS…...

js 移除字符串中所有的a标签;js 移除字符串中所有的a标签,但是保留a标签包裹的部分

js 移除字符串中所有的a标签 要移除字符串中所有的 <a> 标签&#xff0c;可以使用正则表达式和 String.replace() 方法。以下是实现这一功能的示例代码&#xff1a; function removeATags(str) {return str.replace(/<a\b[^<]*(?:(?!<\/a>)<[^<]*)…...

深信服科技:2023网络安全深度洞察及2024年趋势研判报告

2023 年&#xff0c;生成式人工智能和各种大模型迅速应用在网络攻击与对抗中&#xff0c;带来了新型攻防场景和安全威胁。漏洞利用链组合攻击实现攻击效果加成&#xff0c;在国家级对抗中频繁使用。勒索团伙广泛利用多个信创系统漏洞&#xff0c;对企业数据安全与财产安全造成了…...

windows下mysql修改 my.ini的datadir后 `Access denied`

1. 背景 window安装mysql数据库时,不能指定数据文件存放位置(默认安装路径 "C:/ProgramData")。 只能通过修改mysql.ini来更改数据文件存放目录。 2. 问题: 修改mysql.ini后,mysql 出现 "Access denied for user ‘root‘@‘localhost‘ (using passwor…...

Java比较运算符

关系运算符和比较运算符适用于条件判断类型。 相当于布尔值&#xff0c;只有True和False两个 符号 说明ab,判断a的值是否等于b的值&#xff0c;条件成立为true,不成立为false ! a!b,判断a和b的值是否不相等&#xff0c;条件成立为true,不成立为false > …...

「网络原理」IP 协议

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;计网 &#x1f387;欢迎点赞收藏加关注哦&#xff01; IP 协议 &#x1f349;报头结构&#x1f349;地址管理&#x1f34c;动态分配 IP 地址&#x1f34c;NAT 机制&#xff08;网络地址映射&am…...

电商平台生活用品销售数据分析与应用

摘 要 在当前互联网飞速发展的时代&#xff0c;计算机应用给我们的工作生活带来了极大的便利。如今我们的生活离不开电商平台&#xff0c;其随之而来的是各种各样的销售数据与消费者信息&#xff0c;这些数据和信息的分析应用成为了当前互联网领域研究的重要部分。 本论文以基…...

FastAdmin数据库设计规范

FastAdmin数据库设计规范,官方文档上也有&#xff0c;仅仅是为了我自己做一次笔记增加记忆强度 表名和字段名全小写,只允许出现a-z和_这几种字符&#xff0c;且不能有拼音&#xff0c;只能为英文单词存储引擎统一使用innodb引擎字符集统一使用utf8mb4&#xff0c;排序规则使用…...

基于MATLAB仿真LFM线性调频信号

基于MATLAB仿真LFM线性调频信号 目录 前言 一、LFM信号简介 二、LFM信号基本原理 三、LFM信号仿真 四、代码 总结 前言 仿真中的接收信号&#xff0c;有时为了简单会直接用一个正弦波代替&#xff0c;但实际中接收到的信号极少是点频信号&#xff0c;一般都是PSK信号、OF…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...

数据库——redis

一、Redis 介绍 1. 概述 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、高性能的内存键值数据库系统&#xff0c;具有以下核心特点&#xff1a; 内存存储架构&#xff1a;数据主要存储在内存中&#xff0c;提供微秒级的读写响应 多数据结构支持&…...

STM32标准库-ADC数模转换器

文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”&#xff1a;输入模块&#xff08;GPIO、温度、V_REFINT&#xff09;1.4.2 信号 “调度站”&#xff1a;多路开关1.4.3 信号 “加工厂”&#xff1a;ADC 转换器&#xff08;规则组 注入…...