Halcon 程序结构

HDMI结构光源控制板 1080P 正弦、格雷码、棋盘格、条纹光、玻璃检测、机器视觉、视频同步板 等 1、可以输出棋盘格,正弦,余弦,格雷码,方波,二进制,三角波等,精确像素控制,一键同步移动扫描; 2、USB 串口通信,USB供电,用户发送命令控制模块工作,开放通信协议,提供SDK; 4、用户可以自定义写入多达50个条纹数据; 5、板载相机硬触发接口,方便用户采用硬触发控制相机等设备进行图像同步采集; 6、集成了GAMA 输出模式,方便用户对输出图像进行GAMA矫正; 阅读详情

Halcon 程序结构

  1. 读取/采集图像(read_image / grab_image)获取待处理的原始数据;
  2. 处理图像:预处理 - 分割 - 特征提取;
  3. 输出结果(disp_region / write_excel)将判定结果显示或输出;
  4. 释放资源(clear_image / clear_vars)清理内存,防止程序跑久崩溃。

每次不一样的任务其实只需要调整第二步即可。

场景一:表面缺陷检测

读取图像 → 预处理(滤波去噪)→ 分割(动态阈值)→ 特征提取(connection + select_shape)→ 输出结果

场景二:字符识别 OCR

读取图像 → 定位(模板匹配 find_shape_model)→ 分割(提取字符区域)→ 识别(调用 do_ocr_multi_class_mlp)→ 输出文本结果

场景三:高精度边缘测量

读取图像 → 定位 → 亚像素边缘提取(edges_sub_pix)→ 几何拟合 → 计算距离/角度 → 输出结果

图像预处理

一、看“图像本身”

  1. 有噪点(雪花点、椒盐噪点):用 median_image(中值滤波)或 gauss_filter(高斯滤波);
  2. 光照不均匀(一边亮一边暗):用灰度形态学 gray_tophat(顶帽变换)提取局部特征,或者用 emphasize 增强局部对比度,甚至用 scale_image 进行全局拉伸;
  3. 有规律的周期性纹理(如布匹织纹、金属拉丝):频域滤波(fft_generic + convol_fft),把特定频率的纹理直接抹掉;
  4. 目标与背景对比度太低(灰蒙蒙的):用 emphasize 锐化边缘,或者 scale_image 增强对比度。

二、看“后续任务”需要什么

  1. Blob分析 / 阈值分割:做对比度增强、光照补偿,确保目标和背景的灰度差足够大;
  2. 边缘提取 / 卡尺测量:先做平滑滤波(如 gauss_filter),把毛刺抹平,然后再用 emphasize 把真正的物理边缘锐化;
  3. 形状模板匹配:不需要预处理。

三、看“缺陷类型”

  1. 检测表面微小划痕:划痕是高频信息。用 emphasize 或高通滤波,把高频细节放大;
  2. 检测表面污点/色斑:污点是局部灰度异常。用 gray_tophat(顶帽变换)或者 dyn_threshold(动态阈值),过滤掉大面积的背景,只留下局部的异常点。

分割

1. 阈值分割(threshold)

  • 核心原理:设定一个灰度临界值,大于它的归为前景,小于它的归为背景。
  • 适用场景:光照均匀、对比度极高、背景单一的场景。例如:文档扫描、印刷字符提取、黑白二维码分割、纯色工业零件检测。
  • 局限性:一旦遇到颜色渐变、阴影或复杂纹理,就会彻底失效。

2. 边缘分割(Edge Detection)

  • 核心原理:寻找物体和背景灰度突变的地方(边缘),然后将边缘闭合形成轮廓。
  • 适用场景:简单几何工件的轮廓提取、零件尺寸检测。
  • 局限性:对噪声极度敏感,容易产生大量碎边缘;如果物体边缘有轻微断裂,就无法形成完整的轮廓。

3. 区域类分割(Region Growing & Watershed)

  • 核心原理:把特征相近、空间连通的像素合并为完整区域。
  • 适用场景:
    • ① 漫水填充(FloodFill):适合交互式的单色块提取、污渍标记。
    • ② 分水岭算法(Watershed):这是传统算法中的“大杀器”,唯一能分割堆叠、粘连颗粒的方法(例如药片计数、细胞分割、重叠的米粒)。
  • 局限性:分水岭算法对噪声敏感,容易出现“过分割”(把一个物体切成好几块),且预处理流程非常复杂。

4. 聚类方法(Clustering)

  • 核心原理:用 K-Means 或 Mean-Shift 等算法,根据像素的颜色、纹理相似度自动将像素分组。
  • 适用场景:人像美颜预处理、纹理平滑分割、不需要先验知识的场景。
  • 局限性:对高维特征处理能力弱,极易受光照影响,且运算耗时。

参数设定

一、物理约束

  • 滤波掩膜尺寸(Mask Size):比如中值滤波或形态学操作,掩膜尺寸必须大于要去除的噪点尺寸,但又要小于要保留的缺陷尺寸。
  • 形态学结构元素:如果要断开两个相距 5 像素的粘连区域,腐蚀算子(Erosion)半径就必须大于 2.5。
  • 面积筛选阈值(Area):在 select_shape 中,测量 10 个正常样本,找出其中最大噪点的面积,然后在此基础上乘以 1.5 到 2 倍作为下限。

二、统计学法

  • 动态阈值(dyn_threshold)的 Offset:这个参数决定了灵敏度。先提取正常背景区域的灰度值,计算其标准差(Standard Deviation)。Offset 通常设置为标准差的 2 到 3 倍,这样就能在统计学上保证把正常的背景波动过滤掉,只抓真正的缺陷。
  • 模板匹配的 MinScore:不要盲目设为 0.8。采集 20 张良品图跑一遍匹配,记录下最低的匹配分数(比如是 0.75);再拿几张有遮挡或光照变暗的图跑一遍,看看分数掉到了多少(比如 0.65)。MinScore 就应该设定在这两者之间(如 0.7)。

三、参数联动与协同法

  • Canny 边缘检测的联动:在提取亚像素边缘(edges_sub_pix)时,如果发现边缘断断续续,通常是因为 Canny 的高阈值(High Threshold)设得太高了。这时候,不仅要降低 High Threshold,还要联动降低 Low Threshold(通常保持 High 是 Low 的 2 到 3 倍),这样才能找回丢失的边缘。
  • 形状匹配的金字塔层级(NumLevels)与对比度(Contrast):金字塔层级越高,匹配速度越快,但会丢失细节。如果处理的是高反光金属件,适当减少金字塔层级,同时调低 MinContrast,反而能大幅提高匹配的稳定性。

四、边界测试法

  • 极限测试:假设找到了一个完美的 Offset=15。试着把它调到 10,看看会不会误报;调到 20,看看会不会漏检。如果 12 到 18 之间都能稳定检测,那么 15 就是一个极其安全的参数。
  • 鲁棒性验证:把产线上光照最亮、最暗、产品位置最偏的几张“极端图”拿出来跑一遍。如果在你设定的参数下,这些极端图依然能 OK,参数才算真正合格。

相机标定

相机内参标定(解决镜头畸变问题)

在工业现场,由于镜头并非理想的光学模型,拍摄出的图像往往会产生形变(比如直线在边缘变弯曲了,这被称为径向畸变或枕形/桶形畸变)。相机内参标定的核心目的,就是计算出镜头的畸变系数,把弯曲的图像“拉直”,从而保证后续的高精度测量不出现偏差。

第一步:准备标定板描述文件(create_calib_data)

使用现成的描述算子 calibrate_hand_eye_cam_plate.descr

第二步:采集多张标定板图像(find_calib_object)

让相机从不同角度、不同位置、不同倾斜度拍摄标定板(通常需要 10~20 张,确保覆盖视野的中心和边缘)。这个算子会在图像中自动寻找标定板的特征点(如棋盘格的角点),并将这些 3D 世界点与 2D 图像点建立对应关系。

第三步:执行标定计算(calibrate_cameras)

让 Halcon 的底层算法去解算相机的内部参数。它会根据上一步提取的特征点,自动计算出相机的焦距、光轴中心以及畸变系数等内参。

第四步:获取结果并校正图像

拿到参数后,就可以用来校正后续拍摄的图像了。

  • get_calib_data:提取计算出的相机内参;
  • change_radial_distortion_cam_par / gen_radial_distortion_map:生成畸变校正映射;
  • map_image:将原始畸变图像映射为校正后的完美图像。

手眼标定(解决像素到物理坐标的转换问题)

本质是求解一个数学转换矩阵,在相机坐标系和机器人坐标系之间架起一座桥梁,让机器人能够理解相机视野中目标物体的三维位置和姿态,并规划出精准的抓取或操作路径。

一、首先根据你的硬件安装方式选择对应的模式

  1. 眼在手外:相机固定安装在机器人外部的工作区域,视野广阔,观察机器人末端的运动。
  2. 眼在手上:相机安装在机器人的末端执行器(法兰)上,随着机械手一起移动,适合抓取大范围或深箱内的物体。

二、数学原理

手眼标定的核心是求解一个 4x4 的齐次变换矩阵。在数学上,这通常被抽象为经典的 AX = XB 方程:

  • A:机器人末端执行器的运动变换矩阵(基坐标系到末端坐标系)。
  • B:相机观察到的目标(标定板)运动变换矩阵(相机坐标系到目标坐标系)。
  • X:待求的手眼变换矩阵(相机坐标系到机器人基坐标系的转换)。

三、工作过程

1. 硬件准备与安装

根据任务需求确定安装模式(Eye-in-Hand 或 Eye-to-Hand),并准备好高精度的标准标定板(如棋盘格或圆点阵)。确保机器人底座、相机支架安装牢固,且相机已进行预热暖机。

2. 采集标定数据

控制机器人带动标定板(或相机)运动到多个不同的位置和姿态。建议采集 9-12 组数据,确保覆盖相机视场的主要区域,避免边缘死角。每次移动后保持静止,记录此时机器人末端的物理位姿,同时控制相机拍摄图像并提取特征点坐标。

3. 图像处理与特征提取

对采集到的图像进行分析,精确提取标定板上的特征点。在处理反光或复杂表面时,需调整好光源和相机参数,确保标定板特征点清晰可见,为后续计算打下坚实基础。

4. 求解手眼关系

利用采集到的多组机器人位姿和图像特征数据,通过专门的数学算法(如 Tsai-Lenz、Kronecker 积法等)进行求解,计算出相机坐标系与机器人手部坐标系之间的转换矩阵。

5. 精度验证与优化

标定完成后必须进行验证。通过让机器人移动到由相机定位的某个目标点,检验实际到达位置与理论位置的误差(通常通过重投影误差或变换误差来评估)。如果误差较大,可通过非线性优化算法进一步减小误差。

halcon

create_hand_eye_calibration (HECModelID)
set_hand_eye_calibration_pose
calibrate_hand_eye

四、把相机看到的像素坐标,精准转换为机械手能懂的物理坐标

  • image_points_to_world_points:把图像上的 2D 像素坐标 (Row, Column),结合相机的内参,转换成相机坐标系下的 3D 物理坐标 (X, Y, Z)。Z 轴通常需要自己设定。
  • create_pose:把上一步算出的相机坐标系下的 (X, Y, Z) 坐标,打包成一个 Halcon 专用的“位姿(Pose)”变量。
  • pose_compose:将两个位姿矩阵相乘。最终机械手位姿 = 手眼标定矩阵 (HandEyeMatrix) × 目标在相机下的位姿 (CamPose)

算法性能优化

一、算法与代码逻辑优化

1. 限定 ROI 区域(reduce_domain)

先用模板匹配或粗定位找到目标,用 reduce_domain 框出关键区域,后续所有算子只在这个小区域内运行。

2. 模板匹配性能调优

  • 金字塔层数(NumLevels):高对比度目标设 3-5 层,低对比度设 1-3 层。层数越多速度越快,但容易丢失细节;
  • 贪婪度(Greediness):速度要求高时调大(如 0.9),精度要求高时调小;
  • 切记:千万不要在 for 循环内创建模板!create_shape_model 必须在循环外执行一次,循环内只调用 find_shape_model。在循环内建模板是性能灾难,还会导致内存泄漏。

3. 组件匹配

在复杂装配体检测中,使用 find_component_model 时,将搜索策略设为 'prune_branch'。一旦发现缺失组件就提前终止搜索,能将检测时间大幅缩短。

二、Halcon 自动并行化(AOP)与多核加速

Halcon 默认开启了自动操作员并行化(AOP),它会自动将图像数据切分给多个 CPU 核心处理。

halcon

* 获取当前系统核心数和线程池状态
get_system ('processor_num', ProcessorNum)
get_system ('thread_num', ThreadNum)

* 查看 AOP 是否开启(默认是 true)
get_system ('parallelize_operators', AOP)

如果默认 AOP 效率不高,可以使用 optimize_aop 算子。它会通过几小时的硬件测试,为你的 CPU 生成最优的并行策略文件(.aop_info),以后运行程序会自动加载。

三、硬件级加速(GPU 提速)

对于极其耗时的图像处理(如大尺寸图像的频域滤波、复杂的深度学习推理),可以调用 GPU 加速。使用 GPU 加速前必须先关闭界面的自动刷新(dev_update_off()),否则图像在 CPU 和 GPU 之间频繁传输反而会拖慢速度。

异常处理与工程鲁棒性

一、Try-Catch 异常捕获机制

防止程序崩溃的最有效手段。当 Halcon 算子遇到致命错误(比如读取了不存在的图片、相机未连接)时,它会抛出异常(Exception)。如果不捕获,程序就会直接停止运行。

在 HDevelop 中,使用 try...catch...endtry 将可能出错的代码包裹起来:

halcon

try
    * 尝试执行可能出错的代码(例如读取图像)
    read_image (Image, 'D:/images/cam_01.png')
catch (Exception)
    * 如果出错,程序不会崩溃,而是跳到这里
    * Exception[0] 包含了错误代码(例如 5200 表示文件未找到)
    dev_get_exception_data (Exception, 'error_message', ErrMsg)
    disp_message (0, '捕获到异常: ' + ErrMsg, 'window', 10, 10, 'red', 'true')
    * 在这里可以执行清理操作或跳过当前检测
endtry

二、主动判断与状态机

  1. 结果校验:在执行 find_shape_model 后,不要默认它找到了结果。必须判断返回的 Score 数组是否为空。如果为空,说明没匹配到,应主动跳过后续测量步骤;
  2. 超时熔断机制:在高速流水线或复杂算法中,如果算法陷入死循环或耗时过长,会导致产线堆积。可以设置超时机制(例如在 C# 中使用 Task 配合 CancellationToken,或在 Halcon 中通过 timeout 参数),一旦超时立即放弃当前检测,进入下一节拍;
  3. 状态机架构:工业软件绝不能写成线性的 while(true)。必须采用状态机:初始化 → 待机 → 触发采集 → 算法处理 → 结果输出 → 异常复位。当发生异常时,程序进入“异常复位”状态,等待人工干预或自动重试,而不是直接崩溃。

三、日志记录与质量看板

  1. 记录关键信息:每次检测都必须将“时间戳、图像文件名、检测结果(OK/NG)、耗时、错误代码”写入本地 CSV 或数据库;
  2. 异常图像留存:当触发 catch 或检测到 NG 时,自动将该图像保存到特定的 NG_Images 文件夹中。

边缘检测

边缘检测的实质是通过局部图像微分技术,计算图像灰度分布的梯度(一阶导数极值或二阶导数过零点),从而提取出对象与背景间的交界线。

一、传统经典的算子

1. Sobel 算子

  • 特点:利用像素上下左右邻域的灰度加权差分来计算梯度。
  • 优势:对噪声具有平滑作用,能提供较精确的边缘方向信息。
  • 劣势:定位精度不高,容易检测出伪边缘。

2. Canny 算子(工业界最常用)

  • 特点:被公认为最稳健的边缘检测算法之一。它包含四个严谨的步骤:高斯滤波去噪、计算梯度强度和方向、非极大值抑制(细化边缘)、迟滞阈值化(双阈值边缘跟踪)。
  • 优势:抗噪能力强,边缘连续且精准。

3. Laplacian 算子(LoG)

  • 特点:基于二阶导数,通过寻找零交叉点来定位边缘。对细节和噪声非常敏感,通常需要先做高斯平滑(LoG)。

二、Halcon 中的边缘检测

1. 像素级边缘检测(基础轮廓提取)

  • sobel_amp:Sobel 梯度算子。计算速度快,对水平和垂直边缘敏感,适合做简单的边缘粗提取;
  • edges_image:综合梯度计算算子,支持 Canny、Lanser 等算法,输出梯度幅值和方向图像。

2. 亚像素级边缘检测

edges_sub_pix:它直接输出亚像素精度的边缘轮廓(XLD 格式),精度可达 0.1 甚至 0.01 像素级别。支持 'canny'、'sobel'、'roberts' 等。其中 Canny 算法因为结合了高斯滤波、非极大值抑制(NMS)和滞后双阈值,抗噪能力和边缘定位最准。

halcon

edges_sub_pix (Image, Edges, 'canny', Sigma, Low, High)

参数说明:

  • Sigma(高斯平滑系数):控制边缘检测的灵敏度。
    • 大 Sigma(如 2.0~3.0):检测粗边缘,抗噪能力强,但会丢失微小细节;
    • 小 Sigma(如 0.5~1.0):检测细边缘,但容易把噪点当成边缘。
  • Low / High(滞后双阈值):过滤伪边缘,连接断裂的真实边缘。
    • High(高阈值):强边缘的门槛。高于此值的必定是真实边缘。
    • Low(低阈值):弱边缘的门槛。低于此值的直接丢弃;介于 Low 和 High 之间的,如果与强边缘相连,则保留,否则丢弃。
    • 通常建议 High 是 Low 的 2~3 倍。如果边缘断断续续,降低 Low;如果背景噪点太多,提高 High。
halcon中面到面的距离_HALCON基础知识 HALCON1.语法范式SyntaxStyle1.1.基本格式1.1.1.算子格式算子(输入图像参数:输出图像参数:输入控制参数:输出控制参数)其中四个参数任意一个可以为空**threshold算子,1ImageParainput:Image;2ImageParaoutput:Region;**3ControlParainput:MinGray,MaxGray4... 阅读详情

相关推荐

Halcon联合C#编程

Halcon联合C#编程 Halcon联合C#编程目前我知晓的有三种方式:1、将Halcon代码导成C#代码然后复制到C#程序中;2、直接采用C#中的Halcon库语句进行程序编写(难度有点大,其实就是第一种的另一种操作); 3、利用Halcon引擎直接在C#中调用Halcon程序,(电脑上必须安装Halcon软件,这是前两种的优势,但它的优势在于可以直接在Halcon改代码后C#中直接观察效果,可以节省很大的工作量)。 一、Halcon导成C#代码 二、直接在C#中利用Halcon语句编程 三、利用Hal

qq_20792765的博客 7214

光源与缺陷检测

文章目录外观检测难点一、光源选择针对不同类型的外观缺陷检测光源方案二、部分特种光源1.交叉线形光源2.平面无影光源2.平面条纹光源总结 外观检测难点 产品的多样性,经常使外观检测陷入困境; 产品的外观缺陷除了常见的划痕、杂质、裂纹等,还有易与背景融于一体的透明胶水轮廓检测; 反光物体通常会使图像呈现大面积白斑,无法提取缺陷特征; 圆弧面缺陷,受弧面的影响导致视野不能做大,如用明视野法,则成像光斑非常小;用暗视野成像则对于缺陷方向有局限性; 部分产品表面由于材质原因,灰尘、杂质与划痕难以区分检测; 空心圆

u011561279的博客 2683

Halcon之使用 HALCON/C++ 编程

Halcon之使用 HALCON/C++ 编程Introducing HALCON/C++一、1、A First Example二、使用步骤1.头文件2.结果总结 Introducing HALCON/C++ HALCON/C++ 是 HALCON 与 C++ 编程语言的接口。 与 HALCON 库一起,它允许在 C++ 程序中使用 HALCON 的图像处理能力。 一、1、A First Example Figure 4.1: The left side shows the input im..

weixin_43488529的博客 7861

halcon视觉缺陷检测系列(1)常用的6种方法

一、缺陷检测综述 缺陷检测是视觉需求中难度最大一类需求,主要是其稳定性和精度的保证。首先常见缺陷:凹凸、污点瑕疵、划痕、裂缝、探伤等。常用的手法有六大金刚(在halcon中的ocv和印刷检测是针对印刷行业的检测,有对应算子封装): 1.blob+特征 2.blob+差分+特征 3.光度立体 4.特征训练 5.测量拟合 6.频域+空间结合 二、频域+空间结合法 1、频域结合空......

$firecat利白的代码足迹$ 3万+

halcon多版本安装

halcon 17安装包及破解文件下载地址: https://pan.baidu.com/s/1dGMsxgGP5ED5yPDJxJgwYA v8de halcon 12安装包及破解文件下载地址: https://pan.baidu.com/s/1ZHfNRTVnWs-qzSrD1wouLQ 7bze halcon版本切换助手下载地址: https://pan.baidu.c...

qq_29576869的博客 7296

Halcon XYZ 映射简介

复制链接]在 HALCON 3D 应用的背景下,您肯定已经听说过“3D 映射”、“XYZ 映射”或“XYZ 图像”等术语。许多 3D 传感器可随点云提供这些 XYZ 映射。在本文及后续技术文章中,我们会为您介绍这些 XYZ 映射。我们将讨论什么是 XYZ 映射 (XYZ-Mappings),并简要介绍了为何使用 XYZ 映射对许多 3D 应用有益, 并会更详细的回答:为何使用 XYZ 映射对许多 3D 应用有益。什么是 XYZ 映射?

weixin_42365213的博客 1487

机器视觉-halcon学习笔记3

halcon开发程序结构: 判断: 值得一提的是 这里面的逻辑关键字与或非并不是|| &这些,而是用or and这两个关键字表示; 循环: for循环里面 index 是循环变量的值,0 to |su| 表示循环范围是0到数组su的长度减1这个范围 by 1是表示每次循环index增加1; while循环也是类似的; 这里面没有自加或者自减运算,a++ +...

weixin_34163553的博客 563

机器视觉HALCON-Windows 10下的HALCON13.0安装

为什么要学习HALCON呢?大概有以下几个原因吧:       首先,这学期学校开设了机器人视觉这门课,选用的是基于HALCON的国外经典教材《Machine Vision Algorithms and Applications》。开学的翻了翻教材觉得挺有意思的,但是书本上的内容只是对这个方面的一个知识概述,没有具体的历程,所以还是有必要搞个软件实际操作一下的。       其次,前面买过OPEN...

NiYintang的博客 1万+

机器视觉_HALCON_HDevelop用户指南_6.代码导出

按照HDevelop用户指南/手册的章节顺序,代码导出是第十章的内容。但6789这四章,是偏查阅的内容,不是那种流程介绍的。拿第六章GUI来说,里面子章节对HDevelop中的各种窗口做详细说明,显然前期学习阶段没有必要把里面的内容全看一遍,在用到时查阅更好,剩下的789章同理。从个人使用的角度来讲,在学完1-5章后,已经对HALCON基本概念和HDevelop基本使用有了一定了解,之后就想把HDevelop的功能导出来,试着集成到自己的程序中。

三千幻想乡 2116

机器视觉条形光源应用解析

机器视觉条形光源应用解析

视觉人机器视觉的博客 720

C#与Halcon集成的机器视觉实战

机器视觉技术是计算机科学、人工智能以及图像处理等多个领域的交叉学科。它使计算机能够通过摄像头等设备捕捉图像或视频,并对其内容进行分析和解释,实现视觉感知功能。机器视觉系统常被应用于质量控制、自动导航、三维重建等场景,是现代工业自动化不可或缺的一部分。在计算机视觉和图像处理领域,Halcon软件一直是业界领先的工具。它由德国MVTec Software GmbH公司开发,集成了大量的图像处理算法和机器视觉技术。本章节将深入探讨Halcon软件的发展历程、核心功能以及如何使用它进行高效的视觉应用开发。

weixin_35751194的博客 1393

Halcon学习 资料归总

1、Halcon的自我描述 Program Logic Ø Each program consists of a sequence of HALCON operators Ø The program can be structured into procedures Ø The sequence can be extended by using control operat

8698

# HALCON 20.11 工业视觉工程师学习手册

见文件。

weixin_59715077的博客 217

Halcon编程入门与实战指南

1、Halcon的自我描述 Program Logic Ø Each program consists of a sequence of HALCON operators Ø The program can be structured into procedures Ø The sequence can be extended by using control operat

yqj234的专栏 1660

三角检测缺陷11111111

三角检测缺陷案例

疫情数据分析的“核武器”!JHU CSSE COVID-19数据集超深度解析与实战指南(附代码)

在面对这场没有硝烟的战争时,除了医护人员在前线与病毒搏斗,还有一群默默的英雄——数据科学家和分析师,他们利用手中的“数据武器”,昼夜不停地监测、分析、预测疫情走势,为政府决策、资源调配、公众科普提供了至关重要的支撑。同时,由于某些国家(如美国、加拿大、澳大利亚、中国等)的数据细化到省/州级别,为了得到国家层面的总数据,我们需要按国家和日期进行聚合。正是在这样的背景下,经过这些步骤,我们已经得到了一个包含了累计数据、每日新增数据和活跃病例数的完整数据集,可以开始进行深入的分析和可视化了!

wylee的博客 1165

Halcon学习(二十四)总结(一)

1、Halcon的自我描述 Program Logic Ø Each program consists of a sequence of HALCON operators Ø The program can be structured into procedures Ø The sequence can be extended by using control operat

laoyao54的博客 1220

centos-stream-9上安装nvidia驱动和cuda-toolkit

centos-stream-9上安装nvidia驱动和cuda-toolkit

qq_19072921的博客 3021

C# 联合HALCON编程 之 HALCON引擎在C#内的调用(入门级!!!)

其中输出“GrayImage”是没有作用的,或许说对于后面的是不需要的,选择该变量,右侧移除。对封装函数进行命名,可以选择是否需要对函数设置密码:设置密码后,HDevelop内查看该函数需要输入密码,导出后,该函数为加密状态,其他软件打开导出文件为乱码(不会影响到C#内部的解析执行)如果一个C#工程里面需要调用两个及以上的HALCON引擎,需要对引擎文件的路径指定,不然多个引擎同时调用是,引擎路径会继承最近一次调用的引擎路径。2.3通常,后面的“一般文档”和“文档参数”无需设置,特殊情况再做说明。

mooney1997的博客 8777

【实战揭秘】高胜率集合竞价抓涨停策略:融合MACD背离与斐波那契的量化模型

本文揭秘了一种高胜率集合竞价抓涨停策略,融合MACD背离与斐波那契数列的量化模型。通过量能异动、技术形态突破和资金共识形成的交叉验证,该策略在实盘中表现出色。文章详细解析了MACD背离的量化实现细节、斐波那契数列的实战应用,以及策略的量化建模过程,帮助投资者提升交易胜率。

herb5的博客 1565

【上海大学计算机组成原理实验报告】七、程序转移机制

学习实现程序转移的硬件机制//掌握堆栈寄存器的使用//手动方式实现子程序调用转移过程//手动方式实现子程序返回转移过程//编程实现`OUT`寄存器交替显示`11`和`55`//若要求`11`和`55`各显示`50`次后停机,应该如何修改程序?//根据实验指导书的相关内容,实验箱系统的程序转移硬件机制在于,当`LDPC`有效时,如果此时`DUBS`上的值就是转移的目标地址,则此目标地址被打入`PC`,从而实现程序的转移;若`LDPC`为`0`是附带条件的,就形成“条件转移”。

HackerKevon的博客 2474

【Halcon】学习记录

【Halcon】学习记录 最近比较空闲,记录下自己原来学习过的东西。 本人菜鸟一个,机械出身半路转学qt,所有东西都是自己在网上学习,不保证此博客正确性,仅仅是我个人理解。 Halcon是一款优秀的商业版图像处理软件,Qt在可视化和界面开发方面拥有很强大的功能和便捷性。两者结合可以做很多事情。关于背景、介绍等等百度有一大把,我就不再复制,直接介绍我自己的理解和应用。 我个人把qt和halcon相结合分成三类,展示如下。 1.没有交互过程,halcon处理qt显示 2.halcon独自完成交互过程 3.q

Beyond欣 5436

基于COMSOL电弧动态仿真模型优化:高收敛性可修改吹弧方案解析

在多物理场耦合分析中,电弧动态仿真历来是数值稳定性的难点:温度从室温跃升至数万开尔文,电导率随温度呈数量级跳变,流动、传热与电磁场相互牵制,极易引发求解器不收敛或初始值不一致等问题。如何构建高收敛性的数值模型,成为开关设备灭弧性能优化的重要技术基础。通过合理的几何简化、全耦合求解器配置、辅助扫描初始化策略以及参数化建模手段,可以实现对吹弧方案的灵活调整与批量寻优,从而系统性评估气流速度、喷口形状、触头间距等关键因素对熄弧性能的影响。这类仿真方法广泛应用于断路器、接触器等高压电器产品研发,为灭弧室结构设计提供

weixin_29758911的博客 350
上一篇: 工业检测基础-线扫相机和面阵相机参数及应用
下一篇: 工业相机镜头选型+打光方式
小巫山云子
博客等级 码龄6年 1477粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值