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,如果选成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对象,区别于JavaBean JavaBean:特殊的Java类,容易被重用或插入到其他应用程序中去,通过封装属性和方法成为具有某种功能或者处理某个业务的对象 这个类必须有public的无参构造器所有属性都是private的所有属…...
24年安克创新社招入职自适应能力cata测评真题分享北森测评高频题库
第一部分:安克创新自适应能力cata测评 感谢您关注安克创新社会招聘,期待与您一起弘扬中国智造之美。 为对您做出全面的评估,现诚邀您参加我们的在线测评。 测评名称:社招-安克创新自适应能力cata测评 第二部分:安克…...
OpenCV中的圆形标靶检测——findCirclesGrid()(三)
前面说到cv::findCirclesGrid2()内部先使用SimpleBlobDetector进行圆斑检测,然后使用CirclesGridClusterFinder算法类执行基于层次聚类的标靶检测。如下图所示,由于噪声的影响,SimpleBlobDetector检出的标靶可能包含噪声。 而CirclesGridClusterFinder算法类会执行基…...
C++拷贝构造函数、运算符重载函数、赋值运算符重载函数、前置++和后置++重载等的介绍
文章目录 前言一、拷贝构造函数1. 概念2. 特征3. 编译器生成默认拷贝构造函数4. 拷贝构造函数典型使用场景 二、运算符重载函数三、赋值运算符重载函数1. 赋值运算符重载格式2. 赋值运算符只能重载成类的成员函数不能重载成全局函数3.编译器生成一个默认赋值运算符重载4. 运算符…...
视频智能分析平台智能边缘分析一体机视频监控业务平台区域人数不足检测算法
智能边缘分析一体机区域人数不足检测算法是一种集成了先进图像处理、目标检测、跟踪和计数等功能的算法,专门用于实时监测和统计指定区域内的人数,并在人数不足时发出警报。以下是对该算法的详细介绍: 一、算法概述 智能边缘分析一体机区域…...
揭秘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 …...
【云手机】数据安全如何保障?
安全办公,信息安全,这是企业使用云手机的初衷和目的,云手机在数据保密,远程办公等功能上有巨大的优势,也为企业提供了支持 首先就是云手机能够实现数据的集中管理和加密存储。所有办公相关的数据都存储在云端的安全服务…...
【算法专题--链表】删除排序链表中的重复元素 -- 高频面试题(图文详解,小白一看就懂!!)
目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 四、总结与提炼 五、共勉 一、前言 删除排序链表中的重复元素这道题,可以说是--链表专题--,最经典的一道题,也是在面试中频率最高的一道题目,通常在面试中࿰…...
【ajax基础01】ajax简介
目录 一:ajax简介 1 什么是ajax 二:ajax使用 1 如何使用ajax 2 axios使用(重点) 三:案例 四:如何赚钱 一:ajax简介 1 什么是ajax AJAX(Asynchronous JavaScript And XML &am…...
[数据集][目标检测]棉花叶子害虫检测数据集VOC+YOLO格式595张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):595 标注数量(xml文件个数):595 标注数量(txt文件个数):595 标注类别…...
Nominatim免费的地址解析,逆地址解析,OpenStreetMap开源地图数据【全网最全】
视频学习地址 国内的一些地址解析供应商的API都开始付费了,就想找个免费的地址解析和逆地址解析的应用,最终选择了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> 标签,可以使用正则表达式和 String.replace() 方法。以下是实现这一功能的示例代码: function removeATags(str) {return str.replace(/<a\b[^<]*(?:(?!<\/a>)<[^<]*)…...
深信服科技:2023网络安全深度洞察及2024年趋势研判报告
2023 年,生成式人工智能和各种大模型迅速应用在网络攻击与对抗中,带来了新型攻防场景和安全威胁。漏洞利用链组合攻击实现攻击效果加成,在国家级对抗中频繁使用。勒索团伙广泛利用多个信创系统漏洞,对企业数据安全与财产安全造成了…...
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比较运算符
关系运算符和比较运算符适用于条件判断类型。 相当于布尔值,只有True和False两个 符号 说明ab,判断a的值是否等于b的值,条件成立为true,不成立为false ! a!b,判断a和b的值是否不相等,条件成立为true,不成立为false > …...
「网络原理」IP 协议
🎇个人主页:Ice_Sugar_7 🎇所属专栏:计网 🎇欢迎点赞收藏加关注哦! IP 协议 🍉报头结构🍉地址管理🍌动态分配 IP 地址🍌NAT 机制(网络地址映射&am…...
电商平台生活用品销售数据分析与应用
摘 要 在当前互联网飞速发展的时代,计算机应用给我们的工作生活带来了极大的便利。如今我们的生活离不开电商平台,其随之而来的是各种各样的销售数据与消费者信息,这些数据和信息的分析应用成为了当前互联网领域研究的重要部分。 本论文以基…...
FastAdmin数据库设计规范
FastAdmin数据库设计规范,官方文档上也有,仅仅是为了我自己做一次笔记增加记忆强度 表名和字段名全小写,只允许出现a-z和_这几种字符,且不能有拼音,只能为英文单词存储引擎统一使用innodb引擎字符集统一使用utf8mb4,排序规则使用…...
基于MATLAB仿真LFM线性调频信号
基于MATLAB仿真LFM线性调频信号 目录 前言 一、LFM信号简介 二、LFM信号基本原理 三、LFM信号仿真 四、代码 总结 前言 仿真中的接收信号,有时为了简单会直接用一个正弦波代替,但实际中接收到的信号极少是点频信号,一般都是PSK信号、OF…...
互联网的盈利模式
1. 广告收入 展示广告:通过在网站或应用上展示横幅广告、视频广告等,按点击次数(CPC)或展示次数(CPM)收费。搜索广告:通过搜索引擎上的关键词竞价广告,按点击次数收费。社交媒体广告…...
什么是距离选通型水下三维激光扫描仪?(下)
距离选通激光水下成像的发展 距离选通激光成像技术始于上世纪60年代,受制于高性能脉冲激光器和选通成像器件发展的制约,激光距离选通成像技术在随后的二十年发展缓慢,直到20世纪90年代,随着硬件技术的不断成熟,该技术…...
计算机网络(谢希仁第六版)| 课后习题与答案 | 物理层 | 题目知识点详细分析
计算机网络(谢希仁第六版)课后习题与答案 物理层 博客只对老师给的重点进行整理,完整的课后习题答案见Gitee下载:《计算机网络教程(第6版)(微课版)》习题答案 2-5 请画出数据流1 0 1…...
安卓安装linux + .net环境
安装Termux 到下面地址获取apk安装包 https://github.com/termux/termux-app 安装ssh ~ $ pkg install openssl ~ $ pkg install openssh查看用户名 ~ $ whoami ssh u0_a390修改当前用户密码 passwd 启动ssh sshd 安装 proot-distro pkg install proot-distro 列出能装的lin…...
ES6 新增Set 和 Map 两种数据结构
ES6 新增了 Set 和 Map 这两种数据结构,它们为 JavaScript 提供了更强大和灵活的数据处理能力。下面详细介绍一下 Set 和 Map 的特性和用法: Set Set 是一种类似于数组的数据结构,但是成员的值都是唯一的,没有重复的值。 特性&…...
【学一点儿前端】单页面点击前进或后退按钮导致的内存泄露问题(history.listen监听器清除)
今天测试分配了一个比较奇怪的问题,在单页面应用中,反复点击“上一步”和“下一步”按钮时,界面表现出逐渐变得卡顿。为分析这一问题,我用Chrome的性能监控工具进行了浏览器性能录制。结果显示,每次点击“上一步”按钮…...
vue跳转页面 如果登录了直接跳转 没有登录登录完以后直接跳转,使用vuex管理登录状态
在Vue.js中,如果你需要在用户登录后重定向到他们原本想要访问的页面,你可以使用Vue Router的beforeEach守卫来实现这个功能。以下是实现这一需求的步骤: 存储目标路由:在用户被重定向到登录页面之前,存储他们想要访问的…...
渗透测试-若依框架的杀猪交易所系统管理后台
前言 这次是带着摸鱼的情况下简单的写一篇文章,由于我喜欢探究黑灰产业,所以偶尔机遇下找到了一个加密H币的交易所S猪盘,我记得印象是上年的时候就打过这一个同样的站,然后我是通过指纹查找其它的一些站,那个站已经关…...
【免费】中国电子学会2024年03月份青少年软件编程Python等级考试试卷一级真题(含答案)
2024-03 Python一级真题 分数:100 题数:37 测试时长:60min 一、单选题(共25题,共50分) 1. 下列哪个命令,可以将2024转换成2024 呢?( A)(2分) A.str(2024) B.int(2024) C.fl…...
深入了解RTMP推流技术:视频汇聚EasyCVR低延迟与高稳定性分析
RTMP(Real Time Messaging Protocol)视频推流技术,作为音视频传输领域的关键技术之一,已经在直播、视频会议、在线教育等多个场景中得到了广泛应用。RTMP以其独特的优势,为实时音视频传输提供了高效、稳定的解决方案。…...
申请建设网站经费的请示/各网站收录
建造者(Builder)模式 角色如下: 抽象建造者类(Builder):组合Product,实现复杂对象的那些部分的创建具体建造者类(ConcreteBuilder):实现builder接口&#x…...
唐山免费网站制作/识图
作者:James Lewis/Martin Folwer 翻译:Zhang Yang 围绕业务功能组织 仔细看大型应用程序分成的几个部分,往往管理的重点在技术层面上,产生用户界面团队,服务器端功能团队和数据库团队。当这些团队沿着这些线路分开…...
营销网站建设设计/网上如何推广自己的产品
慢查询 MySQL中可以记录慢查询(查询时间超过设定时间的) >show variables like slow%; 查看慢查询设定 >set global long_query_time0.5 设定记录所有时间超过500ms的查询;若log_queries_not_using_indexes1的话,则未使…...
无为县做互联网网站/360收录提交入口
今天在推特上看到有人谈起SecureCRT日志记录的问题,貌似很多人都有这习惯我是开始工作后才使用SecureCRT,一直没记录过日志不过搜了下,看看这功能不错,可以看看自己做什么,有时甚至可以看看之前是不是犯了什么错&#…...
苏州网站建设排行/宁波网络营销策划公司
C语言打印沙漏,一、题目:本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印*****************所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2&am…...
郑州响应式网站建设/推广软文发稿
keras框架为我们提供了一些常用的内置数据集。比如,图像识别领域的手写识别MNIST数据集、文本分类领域的电影影评imdb数据集等等。 数据地址: 链接: https://pan.baidu.com/s/138a6cbP_Pn-dQNIxaio0aw 提取码: sxih...