机器视觉_HALCON_模板匹配_1.CreateScaledShapeModel

news2024/11/16 15:36:11

文章目录

  • 一、前言
  • 二、create_scaled_shape_model 算子
    • 2.1 名称
    • 2.2 算子签名
    • 2.3 描述
      • 2.3.1 输入参数详述
      • 2.3.2 完整的预生成模型
    • 2.4 执行信息
    • 2.5 参数
    • 2.6 执行结果
    • 2.7 可能的前驱算子
    • 2.8 可能的后继算子
    • 2.9 替代选择


一、前言

在HALCON算子手册中,对算子的介绍通常包含HALCON原生程序、C#、C++以及C四种语言的介绍。

本文以介绍HALCON原生程序下的 create_scaled_shape_model 算子(用其它语言联合HALCON开发,肯定要能看懂HALCON原生示例程序)的形式来学习该算子。虽然标题的CreateScaledShapeModel是大驼峰命名法,是C#和C++采用的命名,但这是因为我以往文章标题是以下划线分段的,为了美观和避免歧义,我才使用了驼峰式命名(不然标题就变成了 机器视觉_HALCON_模板匹配_create_scaled_shape_model ,虽然现在的命名引入了HALCON和其它语言混淆的另一个歧义)。

二、create_scaled_shape_model 算子

2.1 名称

create_scaled_shape_model 该算子会准备一个用于匹配的等轴性的(isotropically)缩放模型。

isotropically
各向同性的;(不随量度方向变化的特性)
等轴性的;

2.2 算子签名

create_scaled_shape_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, ScaleMin, ScaleMax, ScaleStep, Optimization, Metric, Contrast, MinContrast : ModelID)

2.3 描述

该算子会创建一个模板,该模板作为一个各向同性缩放的形状模型传递到图像模板中,用于匹配。模型的ROI作为模板的域(domain)进行传递。

域,domain
通俗讲就是一幅图像中由内容的区域。
HALCON中指的是图像要被处理的部分。因此有了ROI(感兴趣区域)。
域是HALCON中的region,可以被灵活定义(可以是一系列不连通像素的集合)。

输出参数ModelID是该模型的句柄,用于后续调用 find_scaled_shape_model 。模型图像模板(Template)的域的重心(center of gravity)用作模型的原点origin(或者说参考点,reference point)。用 set_shape_model_origin 可以设置不同原点。模型是使用多个图像金字塔级别生成的,并存储在内存中。

图像金字塔,image pyramid
图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的图像金字塔是一系列以金字塔形状(自下而上)逐步降低,且来源于同一张原始图的图像分辨率集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。
在这里插入图片描述
如果选择了一个完整的预生成模型,则在每个级别上都会以多旋转和缩放比例生成模型。

2.3.1 输入参数详述

  1. NumLevels,(金字塔)级别数量
    金字塔级别的数量由 NumLevels确定。它应该尽可能地大,这样可以显著减少寻找物体所需的时间。另一方面,NumLevels必须选择得当,以使模型在最高金字塔级别仍是可识别的,且包含足够数量的点(至少四个)。这可通过 inspect_shape_model 的输出来检查。如果没有生成足够的模型点,系统会在内部减少金字塔级别的数量,直到在最高金字塔级别上找到足够的模型点。如果该过程导致一个模型没有金字塔级别生成,即在最低金字塔级别上模型的数量还是太少,则 create_scaled_shape_model 会返回一条错误信息。

    如果NumLevels设置为’auto’(或为了向后兼容设置为0), create_scaled_shape_model 会自动确定金字塔级别的数量。可以使用 get_shape_model_params 查询自动计算的金字塔级别数量。在极少数情况下, create_scaled_shape_model 可能会确定一个过大或过小的金字塔级别数量。如果金字塔级别数量过大,图像中的模型可能无法识别,或者可能需要在 find_scaled_shape_model 中为MinScore或Greediness设置非常低的参数才能找到模型。如果选择过小的金字塔级别数量,find_scaled_shape_model 寻找模型所需的时间可能会增加。在这些情况下,应使用 inspect_shape_model 的输出来选择金字塔级别数量。

  2. AngleStart,AngleExtent和AngleStep,旋转角度相关
    参数 AngleStart,初始角度AngleExtent,角度范围 决定模型在图像中可能出现的旋转角度的范围。请注意, find_scaled_shape_model 只能在该角度范围内找到模型。参数 AngleStep 确定了所选角度范围内的步长。因此,如果在 find_scaled_shape_model 中未指定亚像素精度(subpixel accuracy),该参数会指定其中角度的可达精度。

    亚像素,Sub Pixel
    亚像素,面阵摄像机的成像面以像素为最小单位。例如某CMOS摄像芯片,其像素间距为5.2微米。摄像机拍摄时,将物理世界中连续的图像进行了离散化处理。到成像面上每一个像素点只代表其附近的颜色。至于“附近”到什么程度?就很困难解释。两个像素之间有5.2微米的距离,在宏观上可以看作是连在一起的。但是在微观上,它们之间还有无限的更小的东西存在。这个更小的东西我们称它为“亚像素”。实际上“亚像素”应该是存在的,只是硬件上没有个细微的传感器把它检测出来。于是软件上把它近似地计算出来。

    应根据物体的大小选择 AngleStep,角度步长 。较小的模型在图像中没有很多不同的离散旋转。因此对于较小的模型,应选择较大的 AngleStep (这一点应该是从受影响的像素来看的,小模型转动很小的角度,像素变化不大,视觉效果不明显,所以步长要拉长)。
    如果 AngleExtent 不是 AngleStep 的整数倍,AngleStep 会做相应修改。为确保 find_scaled_shape_model 返回的旋转角度值不完全为0.0的模型实例,可能的旋转范围会做如下修改:如果没有正整数值n,使得 AngleStart 加上n乘以 AngleStep 恰好为0.0,则AngleStart减少到AngleStep,而AngleExtent增加到AngleStep。

  3. ScaleMin,ScaleMax和ScaleStep,缩放比例相关
    ScaleMinScaleMax 决定了模型的缩放(大小)范围。scale(译成比例好点)为1时,模型为原始大小。参数ScaleStep决定了所选缩放范围内的步长。因此,如果在 find_scaled_shape_model 中未指定亚像素精度,该参数指定 find_scaled_shape_model 中缩放的可达精度。与AngleStep一样,应根据物体的大小选择ScaleStep。如果缩放范围不是ScaleStep的整数倍,ScaleStep会做相应修改。为确保对于未缩放的模型实例,find_scaled_shape_model 返回的比例值正好是1.0,可能的比例范围会做如下修改:如果没有正整数值n使得ScaleMin加上n乘以ScaleStep恰好为1.0,则ScaleMin会减少到ScaleStep,ScaleMax会增加到ScaleStep,从而使可能的缩放范围增加到ScaleStep。

  4. Optimization,优化
    对于一些特别大的模型,通过将Optimization设置为非’none’的值以减少模型点的数量也许会很有用。如果Optimization=‘none’(即关掉优化),则会存储所有点。在其他情况下,根据Optimization的值的不同,点的数量会相应减少。如果点数减少,在 find_scaled_shape_model 中可能需要将Greediness参数设置为更小的值,如0.7或0.8。对于小模型,减少模型点的数量并不会加快搜索。因为该情况下,通常需要检查更多潜在的模型实例(模型小了,图像中存在的可能就更多了)。

    如果将Optimization设置为’auto’, create_scaled_shape_model 将自动确定模型点数的减少。

  5. Metric,度量/标准
    参数 Metric 确定模型在图像中被识别的条件/标准。

    如果 Metric = ‘use_polarity’ ,则图像中的对象必须和模型具有相同的对比度(Contrast)。比如,如果模型是一个在暗/深色背景上的明亮物体,则仅当物体比背景更亮时才会被找到。

    如果 Metric = ‘ignore_global_polarity’ ,即使对比度在全局范围内反转(即模型中原本与背景相比更亮的物体,变的更暗),对象也会被找到。该情况下, find_scaled_shape_model 的运行时间会略有增加。

    如果 Metric = ‘ignore_local_polarity’ ,即使局部对比度发生改变,模型也会被发现。比如,若某部分是中等灰度的(既不亮也不暗),这种情况下该模式会很有用,在其中较暗或较亮的子对象都能被发现。由于这种情况下, find_scaled_shape_model 的运行时间会显著增加,因此通常最好使用 create_scaled_shape_model 创建多个模型,来反映对象可能的对比度变化,并用 find_scaled_shape_models 同时去匹配它们。

    以上三种metric仅适用于单通道图像(single-channel image)。如果将多通道图像用作模型图像或搜索图像,仅第一个通道会被使用(并且不会返回错误信息)。

    如果 Metric = ‘ignore_color_polarity’ ,即使色彩对比度局部改变,模型也会被找到。例如,如果对象的某些部分是可以改变颜色的,如从红色变为绿色。特别是在事先不知道对象在哪些通道中可见的情况下,这种模式非常有用。该模式下,find_scaled_shape_model 的运行时间也许会显著增加。metric ‘ignore_color_polarity’ 可用于具有任意数量通道的图像。如果将其用于单通道图像,其效果与’ignore_local_polarity’相同。应注意的是,对于 Metric = ‘ignore_color_polarity’ ,在使用 ‘create_scaled_shape_model’ 创建模型时和使用 ‘find_scaled_shape_model’ 搜索模型时,通道的数量可以不同。例如,这可以用于从合成生成的单通道图像创建一个模型。此外,应注意通道不需要包含光的光谱(如RGB图像中)。通道也可以包含从不同方向照亮对象获得的同一对象的图像。

  6. Contrast,对比度
    参数 Contrast 确定模型点必须具有的对比度。对比度是衡量物体和背景之间以及同一对象不同部分之间的局部灰度值差异的指标。对比度应该被选择来将模板的重要特征用于模型。Contrast还可以包含一个有两个值的元组。该情况下,模型使用类似于 edges_image 中使用的滞后阈值方法进行分割。此处,元组的第一个元素确定较低阈值,第二个元素确定较高阈值。可选地,Contrast可以包含第三个值作为元组的最后一个元素。该值确定用于基于组件大小,选择重要的模型组件的阈值,即具有比指定的最小大小少的点的组件将被抑制。对于每个连续的金字塔级别,最小尺寸的阈值除以2。如果小模型组件应该被抑制,但仍不执行滞后阈值,

  7. MinContrast,最小对比度
    使用 MinContrast ,可以确定在 find_scaled_shape_model 执行的识别中模型至少具备的对比度。换句话说,该参数将模型与图像中的噪声分开。因此,一个好的选择是图像中由噪声引起的灰度值变化范围。例如,如果灰度值在10灰度级内波动, MinContrast 应设为10。如果模型和搜索图像使用多通道图像,并且 Metric = ‘ignore_color_polarity’ ,则必须将一个通道中的噪声乘以通道数的平方根来确定 MinContrast 。例如,在单通道图像中的灰度值在10个灰度级范围内波动,且图像是一个三通道图像, MinContrast 应设为17。显然, MinContrast 必须小于 Contrast 。如果模型要在非常低的对比度图像中被识别, MinContrast 必须设置为相应较小的值。如果模型要在严重遮挡的情况下仍能被识别, MinContrast 应略大于噪声产生的灰度值波动范围,以确保 find_scaled_shape_model 能够稳定、准确地提取模型的位置和旋转情况。

若将 MinContrast 设为 ‘auto’ ,则最小对比度将根据模型图像中的噪声自动确定。因此,仅在识别过程中的图像噪声与模型图像中的噪声类似时,自动确定才有意义。此外,在某些情况下,建议增加自动确定的值,以便提高抗遮挡能力。可以使用 get_shape_model_params 查询自动计算的最小对比度。

2.3.2 完整的预生成模型

可选地,在 Optimization 中可以传入第二个值。该值决定了模型是否被完全预生成。要达到预生成效果, Optimization 的第二个值必须设置为 ‘pregeneration’‘no_pregeneration’ 。如果没有使用第二个值(只传入了一个值),则用 set_system(‘pregenerate_shape_models’, …) 设置的模式。使用默认值 (‘pregenerate_shape_models’ = ‘false’)时,模型不会被完全预生成。模型的完全预生成通常会导致更低的运行时间,因为在运行时不需要转换模型。然而,在该情况下,创建模型所需的内存和时间会显著增加。还应注意,由于在运行时转换模型必然导致转换后的模型的内部数据与预生成的转换模型不同,因此不能期望两种模式返回相同的结果。例如,如果模型没有完全预生成, find_scaled_shape_model 通常会返回较低的分数(score),这可能需要为完全预生成模型设置较低的 MinScore 值。此外,两种模式下插值(interpolation)获得的姿势可能略有不同。如果需要最大精度,应通过最小二乘(least-squares)调整确定模型的姿势。

如果选中了模型的完整预生成,则根据所选角度和缩放/比例范围预生成模型并存储在内存中。存储模型所需内存与角度步长、缩放步长和模型中的点数成正比。因此,如果 AngleStepScaleStep 太小,又或者 AngleExtent 或 缩放范围太大,则可能会发生模型不再适配(虚拟)内存的情况。在该情况下,必须增大旋转角度或缩放的步长,或者缩小角度范围和缩放范围。无论何种情况,模型都尽量适配主内存,因为这避免了操作系统的分页,使得找到对象的时间大大缩短。由于通过 find_scaled_shape_model 可以以亚像素分辨率确定角度,因此对于直径小于200像素的模型,可以选择 AngleStep ≥ 1°ScaleStep ≥ 0.02

如果选择 AngleStep = ‘auto’ScaleStep = ‘auto’ (或两种情况都为0以实现向后兼容), create_scaled_shape_model 会自动根据模型的大小确定合适的角度或缩放步长。自动计算的角度和缩放步长可以使用 get_shape_model_params 查询。

如果不选中完全预生成模型,则该模型仅在每个金字塔级别上以参考姿势创建。在这种情况下, find_scaled_shape_model 中必须在运行时将模型转换为不同的角度和比例。因此,模型的识别可能需要更长的时间。

请注意,预生成的形状模型是针对特定图像大小量身定制的。由于运行时的原因,在使用同一模型并行搜索不同大小的图像时不支持。该情况下,必须使用相同模型的副本,否则程序可能崩溃。

2.4 执行信息

  • 多线程类型:reentrant,可重入的(可与非独占算子并行运行)
  • 多线程范围:global,全局的(可被任意线程调用)
  • 无法并行化处理

该算子会返回一个句柄。注意,这种句柄类型的实例的状态可能被特定算子更改,即使句柄用作这些算子的输入参数。

2.5 参数

Template(input_object)
输入图像,其域用来创建模型。
NumLevels(input_control)
金字塔级别的最大数量。
默认值:‘auto’
可能的值:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ‘auto’
AngleStart(input_control)
图案/模板的最小旋转角度
默认值:-0.39
建议值:-3.14, -1.57, -0.79, -0.39, -0.20, 0.0
AngleExtent(input_control)
旋转角度的范围
默认值:0.79
建议值:6.29, 3.14, 1.57, 0.79, 0.39
限制: AngleExtent >= 0
AngleStep(input_control)
角度的步长(分辨率/精度)
默认值:‘auto’
建议值: ‘auto’, 0.0175, 0.0349, 0.0524, 0.0698, 0.0873
限制: AngleStep >= 0 && AngleStep <= pi / 16
ScaleMin(input_control)
图案/模板的最小比例
默认值:0.9
建议值:0.5, 0.6, 0.7, 0.8, 0.9, 1.0
限制: ScaleMin > 0
ScaleMax(input_control)
图案/模板的最大比例
默认值:1.1
建议值:1.0, 1.1, 1.2, 1.3, 1.4, 1.5
限制: ScaleMax >= ScaleMin
ScaleStep(input_control)
缩放步长(分辨率/精度)
默认值:‘auto’
建议值:‘auto’, 0.01, 0.02, 0.05, 0.1, 0.15, 0.2
限制: ScaleStep >= 0
Optimization(input_control)
优化的类型和生成模型所用的方法
默认值:‘auto’
可能的值: ‘auto’, ‘no_pregeneration’, ‘none’, ‘point_reduction_high’, ‘point_reduction_low’, ‘point_reduction_medium’, ‘pregeneration’
Metric(input_control)
匹配的标准/条件
默认值:‘use_polarity’
可能值: ‘ignore_color_polarity’, ‘ignore_global_polarity’, ‘ignore_local_polarity’, ‘use_polarity’
Contrast(input_control)
模板图像中对象对比度的阈值或滞后阈值以及对象部分的可选最小尺寸。
默认值:‘auto’
建议值:‘auto’, ‘auto_contrast’, ‘auto_contrast_hyst’, ‘auto_min_size’, 10, 20, 30, 40, 60, 80, 100, 120, 140, 160
MinContrast(input_control)
搜索图像中对象的最小对比度。
默认值:‘auto’
建议值:‘auto’, 1, 2, 3, 5, 7, 10, 20, 30, 40
限制: MinContrast < Contrast

ModelID(output_control)
模型的句柄。

2.6 执行结果

若参数均有效, create_scaled_shape_model 返回值为2(H_MSG_TRUE)。如有必要,将引发异常。如果选择的参数 NumLevelsContrast 使得模型包含的点太少,则会引发错误 8510。

2.7 可能的前驱算子

draw_region, reduce_domain, threshold

2.8 可能的后继算子

find_scaled_shape_model, find_scaled_shape_models, get_shape_model_params, clear_shape_model, write_shape_model, set_shape_model_origin

2.9 替代选择

create_shape_model, create_aniso_shape_model

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python访问数据库

Python访问数据库 Python是一种高级编程语言&#xff0c;在数据分析、科学计算和Web开发等领域都有广泛的应用。Python还有一个很强的优势就是它能够方便地访问数据库。在本文中&#xff0c;我们将介绍Python如何与数据库交互以及Python数据库API的使用。 Python的数据库API …

chatgpt赋能python:Python如何访问数组中的元素

Python如何访问数组中的元素 Python是一种高级编程语言&#xff0c;访问数组中的元素也非常简单。 它提供了一种简单而灵活的方式访问数组中的元素&#xff0c;这使得在Python中使用数组变得非常容易。在本文中&#xff0c;我们将介绍如何在Python中访问数组中的元素以及如何使…

DecimalFormat基本用法

1.保留两位小数(截断&#xff09; 下面展示一些 内联代码片。 double num 11.256;DecimalFormat df new DecimalFormat("#.##");//指定RoundingModedf.setRoundingMode(RoundingMode.DOWN);String str df.format(num);double formatNum Double.parseDouble(str)…

2023年05月份青少年软件编程Scratch试卷三级真题

2023-05 Scratch三级真题 分数&#xff1a;100 题数&#xff1a;38 测试时长&#xff1a;60min 一、单选题(共25题&#xff0c;共50分) 1. 关于变量&#xff0c;下列描述错误的是&#xff1f;&#xff08;A&#xff09;&#xff08;2分&#xff09; &#xff08;变量那一栏…

对于ChatGPT,马化腾、马斯克等科技大佬竟然这么说!

ChatGPT一夜爆火之后&#xff0c;国内几乎是各大互联网公司都在摩拳擦掌&#xff0c;跃跃欲试&#xff0c;从百度的文心一言&#xff0c;到阿里的通义千问&#xff0c;还有360的智脑&#xff0c;讯飞的星火&#xff0c;语言大模型如雨后春笋一般涌出&#xff0c;犹如2014年新能…

代码审计——未授权访问详解

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 未授权访问漏洞&#xff0c;是在攻击者没有获取到登录权限或未授权的情况下&#xff0c;或者不需要输入密码&#xff0c;即可通…

express 基础知识实战

1 Express框架介绍与安装 1.1 Express 安装 生成配置文件package.json npm init --yes安装 Express 框架&#xff0c;就是使用 npm 的命令。 npm install express --save yarn add express --save初次使用 const express require(express) //实例化express const app ex…

全志V3S嵌入式驱动开发(u盘写读)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于现在的soc来说&#xff0c;基本上usb是标配的。它一般需要支持usb host、device和otg三种模式。简单解释下&#xff0c;host模式&#xff0c;就…

数据库原理与应用第2章作业

数据库原理与应用第2章作业 一.单选题(共15题&#xff0c;45分)二.填空题(共5题&#xff0c;25分)三.简答题(共1题&#xff0c;10分)四.计算题(共1题&#xff0c;20分) 一.单选题(共15题&#xff0c;45分) 1.(单选题&#xff0c;3分)关系数据库管理系统应能实现的专门关系运算…

chatgpt赋能python:Python怎么让输出换行?

Python怎么让输出换行&#xff1f; 对于有10年python编程经验的工程师&#xff0c;输出换行是一项基本的操作。在本篇文章中&#xff0c;我们将讨论Python中的换行方法&#xff0c;以便您可以更好地控制输出。 什么是Python的换行符&#xff1f; 在Python中&#xff0c;换行…

SPI总线

目录 声明 1、 SPI简介 2、 SPI特点 2.1采用主-从模式(Master-Slave) 的控制方式 2.2采用同步方式(Synchronous)传输数据 2.3数据交换(Data Exchanges) 2.4 SPI有四种传输模式 2.5 SPI只有主模式和从模式之分。 3、 工作机制 3.1概述 3.2 Timing 声明 转自&#xf…

多层感知机与深度学习算法概述

多层感知机与深度学习算法概述 读研之前那会儿我们曾纠结于机器学习、深度学习、神经网络这些概念的异同。现在看来深度学习这一算法竟然容易让人和他的爸爸机器学习搞混…可见深度学习技术的影响力之大。深度学习&#xff0c;作为机器学习家族中目前最有价值的一种算法&#…

6.compute部署nova服务

Nova-compute 是一个非常重要的守护进程&#xff0c;负责创建和终止虚拟机实例&#xff0c;即管理着虚拟机实例的生命周期&#xff0c;在计算节点上运行&#xff0c;负责管理节点上的实例Instance&#xff0c;例如&#xff1a;创建、关闭、重启、挂起、恢复、中止、调整大小、迁…

chatgpt赋能python:Python计算圆的周长

Python计算圆的周长 Python是一种简单易学的编程语言&#xff0c;被广泛应用于各种领域&#xff0c;包括科学、数据分析、网站开发等等。在本文中&#xff0c;我们将介绍如何使用Python计算圆的周长。 什么是圆的周长 圆的周长是指圆周的长度&#xff0c;也就是圆内任意两点…

chatgpt赋能python:Python计算加法-简单易学,快速实现

Python计算加法 - 简单易学&#xff0c;快速实现 介绍 Python是一种高级编程语言&#xff0c;因其优雅简洁的语法和强大的功能而备受开发者的喜爱。Python不仅可以应用于数据科学领域&#xff0c;也广泛用于Web开发、网络编程、图形界面和游戏等领域。在这篇文章中&#xff0…

Java之异常

Java之异常 异常 抛出异常 所有标准异常类都有两个构造器&#xff1a;一个是默认构造器&#xff0c;另一个是接收字符串作为参数的构造器。使用throw关键字来抛出异常对象。可以抛出任何类型的Throwable对象&#xff0c;它是异常类型的根类。但是通常来说&#xff0c;我们对于…

【IC设计】数字IC设计读书笔记

文章目录 《专用集成电路设计实用教程》集成电路系统的组成集成电路的设计流程综合转化逻辑优化映射同步电路和异步电路亚稳态单时钟同步设计的时序约束目标库和初始环境设置DC如何计算每个逻辑单元的延迟&#xff08;Cell Delay&#xff09;&#xff1f;target librarylink li…

举个栗子~Tableau 技巧(255):文本表中高亮最新日期的数据

对于需要每天查看业务数据的分析用户来说&#xff0c;在刷新工作簿的数据之后&#xff0c;如果能高亮显示当天的数据&#xff08;如下图&#xff09;&#xff0c;就可以事半功倍了&#xff01; 那么&#xff0c;在 Tableau 中该如何高亮文本表最新的数据呢&#xff1f;今天的栗…

什么是HMI和SCADA?两者有什么区别

前言 几十年来&#xff0c;工业控制系统在工业自动化中发挥了重要作用&#xff0c;它允许过程制造商从生产车间采集、分析、处理数据。 在当今瞬息万变的工业环境中&#xff0c;制造商和公用事业公司必须采用现代HMI/SCADA和数字化转型&#xff0c;以跟上变化的步伐&#xff0…

阿里云云主机:ECS/轻量/虚拟主机/GPU/云电脑详解

阿里云云主机分为云虚拟主机、云服务器ECS、轻量应用服务器、GPU云服务器、弹性裸金属服务器、专有宿主机、FPGA云服务器、高性能计算E-HPC、无影云电脑等&#xff0c;阿里云百科来详细说下阿里云云主机详解&#xff1a; 目录 阿里云云主机 云服务器ECS 轻量应用服务器 云…