qt配合halcon深度学习网络环境配置

1.开发环境qt6,编译器MSCV2019,网络是halcon的对象检测,halcon用20.
2.建立qt项目
3.到halcon安装目录下复制include,lib这两个文件夹到qt项目中进行引用
请添加图片描述
请添加图片描述
4.引用到halcon静态库后,到halcon运行目录下找到静态库对应dll文件,还有引用深度学习的halcondl.dll跟halcondlxl.dll,hcanvas.dll
请添加图片描述
5.找齐这些文件后,把文件复制到qt软件运行目录下
请添加图片描述
6.到halcon运行目录下复制thirdparty文件夹到qt运行目录,不然软件运行时,halcon查找设备只能找到cpu,找不到gpu。
7.qt中加载halcon模型代码


void DeelLearning::ReadModel(QString path_model_,QString path_proparameter_)
{try{_path_model="";_path_model_proparameter="";if(_exit_model==true){HalconCpp::ClearDlModel(_dl_model_handle);HalconCpp::ClearHandle(_dl_device_handles);}_exit_model=false;/***读取模型预处理参数***/HalconCpp::HTuple hpath_proparameter_;hpath_proparameter_ = path_proparameter_.toStdString().c_str();HalconCpp::ReadDict(hpath_proparameter_,HalconCpp::HTuple(),HalconCpp::HTuple(),& this->_dl_model_proparameter);/***读取模型***/HalconCpp::HTuple hpath_model_=path_model_.toStdString().c_str();HalconCpp::ReadDlModel(hpath_model_,&this->_dl_model_handle);/***读取驱动***/HalconCpp::HTuple gen_param_name_devices_,gen_param_value_devices_;gen_param_name_devices_[0]="runtime";gen_param_name_devices_[1]="runtime";gen_param_value_devices_[0]="gpu";gen_param_value_devices_[1]="cpu";HalconCpp::QueryAvailableDlDevices(gen_param_name_devices_,gen_param_value_devices_,&_dl_device_handles);int dl_device_handles_count_=_dl_device_handles.Length();qDebug() << "dl_device_handles_count"+QString::number(dl_device_handles_count_);HalconCpp::HTuple dl_device_type_="";HalconCpp::GetDlDeviceParam(_dl_device_handles[0],"type",&dl_device_type_);/***提示下当前变量***/qDebug() << dl_device_type_.ToString().Text();/***设置模型驱动***/HalconCpp::SetDlModelParam(_dl_model_handle,"device",_dl_device_handles[0]);/***设置模型批量***/HalconCpp::SetDlModelParam(this->_dl_model_handle,"batch_size",1);_exit_model=true;_path_model=path_model_;_path_model_proparameter=path_proparameter_;}catch (HalconCpp::HException ex){qDebug()<<ex.ErrorMessage().Text();}
}

8.qt中推理代码


void DeelLearning::AnalyzeImage()
{if(_exit_image==true&&_exit_model==true){HalconCpp::HTuple pro_image_width_,pro_image_height_,pro_image_num_channels_,pro_image_range_min_,pro_image_range_max_,pro_image_normalization_type_,pro_image_domain_handling_;/***获取预处理参数***/HalconCpp::GetDictTuple(this->_dl_model_proparameter,"image_width",&pro_image_width_);qDebug() << pro_image_width_.ToString().Text();HalconCpp::GetDictTuple(this->_dl_model_proparameter,"image_height",&pro_image_height_);qDebug() << pro_image_height_.ToString().Text();HalconCpp::GetDictTuple(this->_dl_model_proparameter,"image_num_channels",&pro_image_num_channels_);qDebug() << pro_image_num_channels_.ToString().Text();HalconCpp::GetDictTuple(this->_dl_model_proparameter,"image_range_min",&pro_image_range_min_);qDebug() << pro_image_range_min_.ToString().Text();HalconCpp::GetDictTuple(this->_dl_model_proparameter,"image_range_max",&pro_image_range_max_);qDebug() << pro_image_range_max_.ToString().Text();/*****预处理图片****/HalconCpp::HTuple dl_sample_batch_;HalconCpp::CreateDict(&dl_sample_batch_);HalconCpp::ConvertImageType(this->_image,&this->_image,"real");HalconCpp::ZoomImageSize(this->_image,&this->_image,pro_image_width_,pro_image_height_,"constant");HalconCpp::HTuple rescale_range=(pro_image_range_max_-pro_image_range_min_)/255;HalconCpp::ScaleImage(this->_image,&this->_image,rescale_range,pro_image_range_min_);HalconCpp::SetDictObject(this->_image,dl_sample_batch_,"image");HalconCpp::HTuple dl_result_batch_;HalconCpp::ApplyDlModel(_dl_model_handle,dl_sample_batch_,HalconCpp::HTuple(),&dl_result_batch_);HalconCpp::GetDictTuple(dl_result_batch_,"bbox_row1",&_bbox_row1);HalconCpp::GetDictTuple(dl_result_batch_,"bbox_col1",&_bbox_col1);HalconCpp::GetDictTuple(dl_result_batch_,"bbox_row2",&_bbox_row2);HalconCpp::GetDictTuple(dl_result_batch_,"bbox_col2",&_bbox_col2);HalconCpp::GetDictTuple(dl_result_batch_,"bbox_class_id",&_bbox_class_id);HalconCpp::GetDictTuple(dl_result_batch_,"bbox_class_name",&_bbox_class_name);HalconCpp::GetDictTuple(dl_result_batch_,"bbox_confidence",&_bbox_class_confidence);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/417047.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32-PWM驱动舵机——HAL库

什么是舵机&#xff1f; 舵机&#xff0c;也叫伺服电机&#xff0c;在嵌入式开发中&#xff0c;舵机作为一种常见的运动控制组件&#xff0c;具有广泛的应用。 舵机型号介绍&#xff1a; 市面上常见的舵机型号有 SG90、MG90S、MG995、MG996R 等等&#xff0c;主要是扭矩大小…

低代码平台赋能:烟花鞭炮企业数字化转型新篇章

随着数字化转型的浪潮席卷全球&#xff0c;传统制造业正面临着前所未有的变革机遇。烟花鞭炮行业&#xff0c;作为承载深厚文化底蕴与独特工艺的传统产业&#xff0c;也不例外。近年来&#xff0c;我国政府高度重视中小企业数字化转型&#xff0c;出台了一系列扶持政策&#xf…

pdf在线转换成word免费版,一键免费转换

在日常的学习和办公中&#xff0c;PDF文件和Word文档是我们离不开的两种最常见的文件&#xff0c;而PDF与Word文档之间的转换成为了我们日常工作中不可或缺的一部分。无论是为了编辑、修改还是共享文件&#xff0c;掌握多种PDF转Word的方法都显得尤为重要。很多小伙伴关心能不能…

基于大数据的电商平台电脑销售数据分析系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 随着电子商务的蓬勃发展&#xff0c;各大电商平台积累了海量的商品数据。如何从这些数据中提取有价值的信息&#xff0c;对于商家来说至关重要。本项目利用网络爬虫技术从京东电商平台采集各类品牌…

Flink优化之--旁路缓存和异步IO

Apache Flink 是一个开源流处理框架&#xff0c;以其高吞吐量、低延迟和事件驱动的处理能力著称。随着大数据和实时处理需求的不断增加&#xff0c;Flink 在许多行业和应用场景中得到了广泛应用&#xff0c;如金融风控、物联网数据处理、实时数据分析等。然而&#xff0c;随着数…

【基础算法总结】BFS_拓扑排序问题

目录 一&#xff0c; 拓扑排序简介1. 有向无环图(DAG图)2. AOV 网3. 拓扑排序4. 如何实现拓扑排序 二&#xff0c;算法原理和代码实现207.课程表201.课程表IILCR114.火星词典 三&#xff0c;算法总结 一&#xff0c; 拓扑排序简介 1. 有向无环图(DAG图) 入度&#xff1a;针对一…

详解GPU服务器与普通服务器之间的差异

GPU服务器与普通服务器之间的差异&#xff0c;犹如赛车与家用车的对比&#xff0c;不仅在于表面的速度与力量&#xff0c;更深入到其核心技术与应用场景的广泛适应性。以下是对这些差异的深度剖析与美化呈现&#xff1a; 一、硬件配置&#xff1a;架构的革新 普通服务器&#…

Linux下的MySQL8.0报错:[Err]1055

Linux下的MySQL8.0报错&#xff1a;[Err]1055 报错信息解决办法 报错信息 在Linux环境下的MySQL里执行SQL语句报如下错误&#xff1a;[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column information_schema.PROFIL…

Linux下使用crontab配置定时任务

文章目录 Linux使用crontab安装crontab启动crontab查看定时任务创建定时任务配置案例配置语法位置含义符号含义 注意 取消定时任务 Linux使用crontab crontab为Linux下的计划任务程序&#xff0c;对应的服务为crond。crond是一个守护进程&#xff0c;每分钟会定期检查是否有要…

涨幅超过了90%,心动网络股价成V字后,TapTap找到流量源了吗?

心动公司发布了截至2024年6月30日止六个月的中期业绩。 在2024年上半年&#xff08;24H1&#xff09;&#xff0c;公司实现总营收22.21亿元&#xff0c;较去年同期增长了26.7%。归属于母公司的净利润达到2.05亿元&#xff0c;同比激增127.4%。经调整后&#xff0c;归属于母公司…

# 利刃出鞘_Tomcat 核心原理解析(十)-- Tomcat 性能调优--1

利刃出鞘_Tomcat 核心原理解析&#xff08;十&#xff09;-- Tomcat 性能调优–1 一、Tomcat专题 - Tomcat性能调优 - 性能测试 1、tomcat 性能测试&#xff1a; 对于系统性能&#xff0c;用户最直观的感受就是系统的加载和操作时间&#xff0c;即用户执行某项操作的耗时。从…

10 先序遍历创建二叉树

这个代码是使用手动输入的方式创建二叉树 比较直观 #include "stdio.h" #include "stdlib.h"typedef int ElemType; typedef struct node {ElemType data;struct node *lchild;struct node *rchild; } Node;Node *create_node(int value) {Node *node (N…

HTTP代理支持UDP协议吗?

在网络通信中&#xff0c;HTTP代理和UDP协议是两个常见但功能和用途不同的技术。本文将详细探讨HTTP代理是否支持UDP&#xff0c;以及在什么情况下可以实现两者的结合。 HTTP代理的基本概念 HTTP代理是一种代理服务器&#xff0c;用于处理HTTP请求和响应。它在客户端和目标服…

element table 表格 span-method 某一列进行相同合并 支持树结构表格

须知 这是 vue2 版本&#xff0c;不过理论上 vue3 也能参考使用 可以直接打开 codepen 查看代码 效果图 代码 打不开 codepen 或者codepen 失效&#xff0c;查看下面代码参考 <script src"//unpkg.com/vue2/dist/vue.js"></script> <script src&…

驭势科技研究成果入选学术顶会IROS 2024

近日&#xff0c;驭势科技团队关于自动驾驶车辆定位算法的最新研究成果《LiDAR-based HD Map Localization using Semantic Generalized ICP with Road Marking Detection》&#xff0c;创造性地解决了基于LiDAR的实时路标检测和高精地图配准所带来的挑战&#xff0c;成功入选国…

第九届“创客中国”生成式人工智能中小企业创新创业大赛招商推介圆满落幕

金秋九月,丹桂飘香。9月2日晚,第九届“创客中国”生成式人工智能(AIGC)中小企业创新创业大赛招商推介会在南昌高新区艾溪湖畔成功举办。南昌市政府副秘书长、办公室党组成员陈吉炜出席并致辞。市中小企业局党组书记、市工信局党组书记、局长骆军出席。南昌高新区党工委委员、管…

CMU 10423 Generative AI:lec2

文章目录 1 概述2 部分摘录2.1 噪声信道模型&#xff08;Noisy Channel Models&#xff09;主要内容&#xff1a;公式解释&#xff1a;应用举例&#xff1a; 2.2 n-Gram模型1. 什么是n-Gram模型2. 早期的n-Gram模型3. Google n-Gram项目4. 模型规模与训练数据5. n-Gram模型的局…

AI科学家:自动化科研的未来之路

随着人工智能&#xff08;AI&#xff09;技术的不断进步&#xff0c;AI已经在众多领域中展现了强大的潜力&#xff0c;尤其是在科研方面的应用正在引起广泛关注。最近&#xff0c;Sakana AI与牛津大学和不列颠哥伦比亚大学联合推出了一款被称为“AI科学家”的自动化科研工具&am…

Stable Diffusion抠图插件爬坑经历,StableDiffusion实操案例(附整合资料)

今天给大家分享使用后期处理插件stable-diffusion-webui-rembg实现抠图功能。 &#x1f449;AI绘画必备工具&#x1f448; 温馨提示&#xff1a;篇幅有限&#xff0c;已打包文件夹&#xff0c;获取方式在&#xff1a;文末 &#x1f449;AI绘画基础速成进阶使用教程&#x1f…

聚铭网络入选“2024年南京市工程研究中心”认定名单

为深入实施创新驱动发展战略&#xff0c;因地制宜发展新质生产力充分发挥工程研究中心对推进产业强市的重要支撑作用&#xff0c;根据《南京市工程研究中心管理办法》&#xff0c;南京市发展和改革委员会于2024年5月组织开展了本年度南京市工程研究中心遴选工作。经企业申报、各…