欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > qt配合halcon深度学习网络环境配置

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

2025/2/23 1:15:13 来源:https://blog.csdn.net/weixin_46648511/article/details/141856486  浏览:    关键词: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);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词