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

用dw做红米网站企业管理培训课程图片

用dw做红米网站,企业管理培训课程图片,wordpress 评论 重复,logo图案设计一、设计背景 在机器视觉系统中,算法是系统的核心。不同产品、不同项目对图像处理的要求不尽相同,因此算法需要具备: 灵活拓展:方便添加新算法统一调用:界面或上层逻辑不关心算法细节结构清晰:便于维护与…

一、设计背景

在机器视觉系统中,算法是系统的核心。不同产品、不同项目对图像处理的要求不尽相同,因此算法需要具备:

  • 灵活拓展:方便添加新算法
  • 统一调用:界面或上层逻辑不关心算法细节
  • 结构清晰:便于维护与团队协作
  • 可视化调试:与 Halcon 窗口联动,便于结果展示

为此,我们设计了一个基于 Qt 和 Halcon 的算法类架构,采用 C++ 面向对象思想,抽象出一个通用算法基类,再由各类检测算法子类继承,实现统一接口和结构。

工程代码

通过网盘分享的文件:Qt 与Halcon联合开发九:算法类设计与实现讲解
链接: https://pan.baidu.com/s/1Bwx51nXuUepDqGz2DTyHeQ?pwd=jkcf 提取码: jkcf

二、总体架构设计

✅ 设计核心:

  • 抽象出一个算法基类 HalconAlgorithmBase

    • 管理通用资源(参数、窗口)
    • 定义统一接口 Run(HObject)
  • 各类检测算法作为子类继承:

    • 实现具体检测逻辑(如边缘检测、定位检测、字符识别等)

📦 类图结构如下:

HalconAlgorithmBase(抽象类)↑┌───────────────┐│               │
ConcreteAlgorithm1(子类1)
ConcreteAlgorithm2(子类2)
……

三、算法基类 HalconAlgorithmBase

3.1 职责说明

HalconAlgorithmBase 是一个抽象类,定义了算法运行框架,主要功能:

功能项描述
参数管理使用 std::map 存储算法运行所需的可配置参数
窗口绑定存储 Halcon 显示窗口,统一显示结果
核心接口提供纯虚函数 Run(const HObject& input) 供子类实现

3.2 接口定义(.h)

#pragma once
#include "HalconCpp.h"
#include <string>
#include <map>class HalconAlgorithmBase {
public:using ParamMap = std::map<std::string, std::string>;HalconAlgorithmBase();virtual ~HalconAlgorithmBase();void SetParams(const ParamMap& params);               // 设置参数const ParamMap& GetParams() const;                    // 获取参数void SetWindow(const HalconCpp::HTuple& window);      // 设置显示窗口const HalconCpp::HTuple& GetWindow() const;           // 获取窗口virtual void Run(const HalconCpp::HObject& inputImage) = 0; // 核心算法入口(子类实现)protected:ParamMap parameters_;HalconCpp::HTuple windowHandle_;
};

3.3 实现逻辑(.cpp)

#include "HalconAlgorithmBase.h"HalconAlgorithmBase::HalconAlgorithmBase() {}HalconAlgorithmBase::~HalconAlgorithmBase() {}void HalconAlgorithmBase::SetParams(const ParamMap& params) {parameters_ = params;
}const HalconAlgorithmBase::ParamMap& HalconAlgorithmBase::GetParams() const {return parameters_;
}void HalconAlgorithmBase::SetWindow(const HalconCpp::HTuple& window) {windowHandle_ = window;
}const HalconCpp::HTuple& HalconAlgorithmBase::GetWindow() const {return windowHandle_;
}

四、子类结构说明(检测类)

🎯 设计原则

每个检测子类都继承自 HalconAlgorithmBase只需实现具体的检测函数。不关心窗口、参数机制,这些都由基类统一管理。

示例(说明性代码)

#pragma once
#include "HalconAlgorithmBase.h"// 示例子类:用于任意具体检测任务
class ExampleDetectionAlgorithm : public HalconAlgorithmBase {
public:void Run(const HalconCpp::HObject& inputImage) override;
};
#include "ExampleDetectionAlgorithm.h"
#include "HalconCpp.h"using namespace HalconCpp;void ExampleDetectionAlgorithm::Run(const HObject& inputImage) {// 这里只是示例检测流程(可替换为任何实际检测逻辑)std::cout << "----- Algorithm Parameters -----" << std::endl;for (const auto& [key, value] : parameters_) {std::cout << key << " = " << value << std::endl;}std::cout << "--------------------------------" << std::endl;HalconCpp::HTuple hv_width,hv_height;HalconCpp::GetImageSize(inputImage,&hv_width,&hv_height);qDebug()<<hv_width.ToString().Text()<<hv_height.ToString().Text();}


五、与 Qt 的结合方式

### 📌 设置算法参数并运行```cpp
#include "exampledetectionalgorithm.h"
#include "HalconCpp.h"using namespace HalconCpp;int main() {HObject image;ReadImage(&image, "1.bmp");auto algorithm = new ExampleDetectionAlgorithm();HalconAlgorithmBase::ParamMap params;params["threshold"] = "128";  // 示例参数algorithm->SetParams(params);algorithm->Run(image);  // image 为 Halcon 的 HObject 输入图像return 0;
}

六、设计优点总结

特性优势说明
🎯 高复用性同一套界面可调用多个算法
🧩 解耦清晰算法逻辑与界面、参数解耦
📦 易于维护新算法实现不影响其他代码
🔍 调试方便可在 Halcon 窗口显示中间过程
🚀 快速迭代支持参数动态配置、热更新

http://www.dtcms.com/a/417832.html

相关文章:

  • 广州建网站腾虎网站域名续费怎么续费
  • 文明网站建设情况报告什么是网络营销环境
  • 常州做网站麦策电商公司简介怎么写吸引人
  • 建设数据库搜索网站设计公司营销策略
  • 网页在线制作网站源码网站建设实例分析
  • 个人微信公共号可以做微网站么阿里云建公司网站
  • 贵阳做网站做得好的做直播平台网站赚钱吗
  • 网站知识架构如何用手机建设网站
  • 做的网站如何发布最新远程网站建设服务
  • 摄影网站的规划与设计wordpress栏目管理
  • 哈尔滨建设信息网站网站搭建维护淄博
  • 内蒙古建设厅公示网站北京关键词优化报价
  • 驰业网站建设wordpress 预订 插件
  • 平湖建设局网站广州物流网站开发
  • 禅城专业网站建设公司搜索引擎 网站推广 举例
  • 台州网站建设哪家便宜网站建设市场背景
  • 成都企业网站seo成都装饰设计公司排名
  • 网站建设业务市场营销论文wordpress 首页显示
  • dede小说网站模板做网站一般几个步骤
  • 外包公司可以去吗长春网站建设优化
  • 网站首页外链ui设计就业前景
  • 怎么做网站后台管理系统深圳三大巨头企业
  • 昆山企业做网站商务网站建设需要备案吗
  • 做网站的软件工程师wordpress添加flash游戏
  • 南充响应式网站建设洛阳做网站公司汉狮价格
  • 建站之星用做什么网站合肥平台网站建设
  • 做网站必备语言2024免费网站推广
  • 北京网站建设亿玛酷专注4宁波网站开发制作
  • 提高网站用户体验WordPress招标采购
  • 一般的网站需要多大的空间深圳网站开发公司