目录

1、像素/亚像素
在图像处理中,像素(Pixel)和亚像素(Subpixel)是两个与图像分辨率和精度相关的概念,它们的区别主要在于表示图像细节的精度和单位大小。

1.1像素
像素(Pixel)是构成数字图像的基本单元,每个像素代表图像中的一个颜色点或灰度值。
像素是图像数据中最小的可寻址元素,其值通常对应于该点的色彩信息。
在硬件层面,像素与传感器上的光敏元件直接相关,如相机的CCD或CMOS传感器上的光电二极管。
图像的总像素数(宽度像素数 × 高度像素数)决定了图像的分辨率,更多像素通常意味着更高的图像清晰度。
1.2亚像素(Subpixel)
亚像素并不是实际物理存在的感光单元,而是通过数学方法和算法推算出的像素间的更精细的分割。
它们是像素内部的更小单位,用于描述像素级别之下更细致的颜色或灰度变化。
亚像素技术常用于提高图像处理的精度,比如在图像配准、特征提取、运动估计等应用中,通过对像素数据进行插值或其他数学运算,可以获得比单个像素更高的定位精度。
通过亚像素处理,可以在不增加物理像素数量的情况下,实现图像细节的增强,这对于需要高精度测量的应用特别有用。
1.3小结
简而言之,像素是图像中实际的、可直接获取的数据点,而亚像素则是为了提升图像处理精度,在像素基础上通过算法推算出的更细微的区分。亚像素处理是一种软件层面的增强技术,用以超越硬件限制,实现更高的图像分析和处理精度。
2、灰度/灰度直方图
2.1灰度(Grayscale)

灰度是指图像中像素表示的亮度信息,是从黑色到白色的连续变化。在灰度图像中,每个像素的值是一个单一的强度值(通常称为灰度级或亮度值),范围通常是0(黑色)到最大值(通常是255,代表白色)。灰度图像摒弃了色彩信息,仅用不同的灰度级来表现图像的明暗和细节。
转换彩色图像为灰度图像的过程称为灰度化,常见的转换方法包括直接取RGB三个通道的平均值或者其他加权平均等。
2.2灰度直方图(Grayscale Histogram)

灰度直方图是灰度图像的一种统计表示,它描述了图像中各灰度级出现的频率分布。具体来说,横轴表示灰度级,从0到最大灰度值;纵轴表示该灰度级在图像中出现的次数或频率(有时经过归一化处理后,纵轴表示频率密度)。灰度直方图提供了一种直观的方式来展示整幅图像的明暗分布特性。
通过灰度直方图,我们可以了解图像的整体亮度、对比度、以及图像内容的大概特性,如双峰可能表明图像中有明显的前景和背景。灰度直方图在图像处理中常用于图像的对比度增强、均衡化、分割、匹配等多种任务。
2.3小结
简而言之,灰度是指图像中的亮度信息表达方式,而灰度直方图是描述这些亮度信息分布情况的图形工具,帮助我们从统计角度理解图像的内容和特性。
3、梯度/梯度直方图
3.1梯度(Gradient)

在图像处理的上下文中,梯度通常指的是图像中像素值的变化率,它能够反映出图像中边缘、线条、纹理等特征的存在。图像的梯度可以分为水平梯度(沿X轴的像素变化)和垂直梯度(沿Y轴的像素变化),或者更一般地,可以看作是图像在任意方向上的变化率。
计算图像梯度最常用的方法是求导数,但在离散的像素世界中,实际上是通过差分近似来实现的,如Sobel算子、Prewitt算子等。梯度的大小(模)提供了边缘强度的信息,而梯度的方向则指示了边缘的方向。

3.2梯度直方图(Gradient Histogram)
梯度直方图是将图像中所有像素点的梯度方向进行统计并汇总成直方图的形式。这个过程通常涉及将图像划分为多个小区域(如细胞单元),然后在每个区域内计算像素梯度的方向,并将其分布情况记录在一个或多维度的直方图中。
其中最著名的是方向梯度直方图(Histogram of Oriented Gradients, HOG),它是一种强大的特征描述子,广泛应用于物体检测,特别是行人检测中。HOG通过计算局部图像区域的梯度方向分布,并将这些分布汇总成一个全局特征向量,从而捕捉图像的局部形状和纹理信息。
直方图的每个bin(桶)代表一个特定的角度范围,统计的是该角度范围内所有像素梯度方向的出现频率。通过这种方式,梯度直方图有效地编码了图像的结构信息,同时对光照、尺度变化等具有较好的鲁棒性。
3.3小结
简而言之,梯度是对图像中像素变化程度和方向的量化描述,而梯度直方图则是对这些梯度信息进行统计和汇总,形成一种能够高效表示图像局部特征的向量形式,特别适用于图像识别和分类任务。通过将图像的局部特征整合成全局描述子,梯度直方图方法能够在复杂多变的视觉场景中保持良好的表现。
4、规定化/归一化
规范化(Normalization)和归一化(Normalization)通常指的是相同的过程,都是将图像的像素值转换到一个特定的范围内,以满足后续处理的要求。
然而,术语“规定化”(Standardization)和“归一化”有时在不同的上下文中有细微的差别。
4.4归一化(Normalization)
目的:主要是为了统一数据尺度,使得数据落入一个特定的范围,常见的是[0, 1]区间。
•方法:常见的做法是线性变换,比如将像素值除以最大值(Max-Min Normalization),或者使用最小-最大缩放(MinMax Scaling)公式(x - min(x)) / (max(x) - min(x)),使得处理后的数据最大值为1,最小值为0。
对于图像数据,常用于将像素值从原始的[0, 255]范围转换到[0, 1]。
•应用:适用于那些对数据区间敏感的算法,如某些类型的神经网络、需要距离度量的算法(如KNN)。

4.2规定化/标准化(Standardization)
目的:主要是为了使数据具有零均值和单位方差,从而满足高斯分布(正态分布)的假设,适合统计分析和一些机器学习算法。
方法:通过Z-score标准化实现,公式为(x - μ) / σ,其中μ是数据集的平均值,σ是标准差。处理后的数据均值为0,标准差为1。
应用:特别适用于基于梯度下降的优化算法(如支持向量机、逻辑回归、线性回归等),因为这样的处理可以加速梯度下降的收敛速度,并减少权重初始化对结果的影响。
4.3小结
简而言之,归一化通常指的是将图像像素值线性映射到一个特定范围,如[0, 1],以适应算法输入的要求。而规定化(或称标准化)则更多地用于将数据转换为标准正态分布形态,这对于需要假设数据符合正态分布的统计分析尤其重要。两者都是数据预处理的重要步骤,选择哪种方法取决于后续处理的具体需求。
5、卷积/卷积核
卷积(Convolution) 和 卷积核(Convolution Kernel) 是在图像处理和卷积神经网络(CNN)中密切相关的两个概念。
5.1卷积

卷积是一种数学运算,也称为卷积运算,它在信号处理、图像处理以及机器学习领域有着广泛应用。
•在图像处理中,卷积操作涉及将一个称为卷积核(或滤波器、模板)的小矩阵在图像上滑动,对核覆盖的图像区域内的像素值进行加权求和。这个过程能够提取图像的特定特征,如边缘、纹理等。
•通过卷积,可以实现图像的降噪、锐化、模糊等效果,或是特征提取,是构建卷积神经网络的基础运算之一。
5.2卷积核
卷积核,也称为滤波器或卷积模板,是一个小型的矩阵,通常包含实数值,用于在卷积操作中与图像的一部分进行计算。
•卷积核的大小(例如3x3、5x5等)和其中的权重值是事先设定或通过学习得到的。这些权重决定了在卷积运算中哪些图像特征会被强调或抑制。
•不同的卷积核可以捕获图像的不同特征,比如水平边缘、垂直边缘、纹理等。在卷积神经网络中,通过学习过程自动调整这些权重,以优化模型对特定任务的表现。
•卷积核在图像上滑动时,每次覆盖图像的一个局部区域,与该区域内的像素值逐一相乘(有时在计算前会先将卷积核旋转180度),然后求和得到输出图像的一个像素值。
简而言之,卷积是一种操作或过程,它利用卷积核来提取图像特征。卷积核是卷积过程中的关键参数,决定了特征提取的方式和类型。在深度学习尤其是卷积神经网络中,卷积核的自动学习是模型能够识别和分类图像的关键机制。

6、直方图/直方图均衡化
6.1直方图(Histogram)
•直方图是统计学中表示数据分布的图形方法,在图像处理领域中,它用来描述图像中像素强度(如灰度值)的分布情况。具体而言,它是一个柱状图,横轴表示像素的灰度级(或颜色值),纵轴表示该灰度级像素的数量或频率。
•对于灰度图像,直方图显示了每个灰度级在图像中出现的频次,从而直观地反映了图像的明暗分布和整体对比度。直方图是理解和分析图像特性的重要工具,也是进行图像增强、分割、匹配等预处理的基础。
6.2直方图均衡化(Histogram Equalization)
•直方图均衡化是一种图像增强技术,旨在改善图像的全局对比度,尤其是当图像的大部分像素集中在较窄的灰度范围内时。该方法通过改变图像的灰度级分布,使得变换后的图像直方图接近均匀分布。
•实现均衡化的过程涉及计算原图像直方图的累计分布函数(CDF),然后根据这个函数映射原图像的每个像素值到新的灰度级,以达到扩展像素值动态范围的目的。这样做的结果是提高了图像的对比度,使得图像的暗部和亮部细节更加明显。
•均衡化不改变图像的总体亮度,但能有效增强图像中原本对比度较低的区域,使之更适合视觉观察或进一步的图像分析。尽管如此,均衡化也可能增强噪声,且对于具有特定亮度分布的图像(如日出或夜景)可能不总是产生理想效果。
6.2小结
简而言之,直方图是图像灰度级分布的图形表示,而直方图均衡化是一种基于直方图分析的图像处理技术,通过调整像素值分布来增强图像的对比度和视觉效果。
7、邻域/连通域
在数字图像处理中,邻域和连通域是两个重要的概念,它们描述了图像中像素之间的空间关系和属性相似性,但侧重点不同。
7.1邻域(Neighborhood)

•邻域描述了图像中某像素周围的一组像素集合,通常用于定义像素之间的局部空间关系。
•邻域可以分为4邻域和8邻域。4邻域指一个像素上下左右四个直接相邻的像素,而8邻域还包括了对角线方向上的相邻像素。
•邻域的概念主要用于各种图像处理操作,如滤波、边缘检测等,其中操作不仅限于中心像素,还涉及到其邻近像素的值。
•邻域关注的是像素在空间上的位置关系,而不考虑像素值的相似性。
7.2连通域(Connected Component)

•连通域是指图像中具有相同属性(如灰度值、颜色)且在空间上相互连通的像素集合。
•连通性的判断通常基于两个条件:位置相邻(即像素在彼此的邻域内)和灰度值(或颜色)相似。根据不同的连通性定义(如4连通或8连通),连通域的划分会有所不同。
•连通域分析是图像分割和特征提取中的基础操作,常用于识别和标记图像中的独立对象或区域。
•通过连通域分析,可以标识并计数图像中的对象数量,测量它们的大小、形状等属性,或进行对象分离和分类。
7.3小结
简而言之,邻域关注的是单个像素周围的空间布局,而连通域则侧重于具有相似属性的像素在空间上的集合和它们之间的相互联系。邻域是定义像素局部操作的基础,而连通域则用于识别和分析图像中的实体或区域。
7.4扩展阅读
在Halcon中,与邻域和连通域相关的算子涵盖了图像处理中从基本的像素邻域操作到连通域分析的多个方面。以下是一些关键的算子及其用途概述:
7.4.1与邻域相关的算子
- neighborhood:定义不同类型的邻域结构,如4邻域或8邻域,常用于后续邻域操作的参数设置。
- morphology系列算子:如erosion_circle, dilation_rectangle等,这些形态学操作算子通过定义的邻域结构(如圆、矩形)来改变图像像素值,进行膨胀、腐蚀等操作。
- filter系列算子:如median_image,使用邻域内的像素值进行中值滤波,减少噪声。
7.4.2与连通域相关的算子
- connection:用于识别图像中的连通域,可以基于不同的连通性定义(如4连通、8连通)将具有相同属性的像素分组。
- select_shape:在识别出连通域后,可以根据形状特征(如面积、周长、长宽比等)选择或过滤连通域。
- disassemble_region:将一个或多个连通域分解为单个的区域对象,便于对每个单独的连通域进行进一步处理。
- count_obj:统计连通域的数量。
- area_center:计算连通域的面积和质心位置。
- regiongrowing:区域生长算子,根据灰度值相似性和位置相邻性从种子点扩展生成连通域,可用于图像分割。
- connection_components:用于识别图像中的所有连通组件,并为每个组件分配一个唯一的标签。
8、滤波/去噪
在图像处理领域,尽管滤波(Filtering)和去噪(Denoising)经常被一起讨论,且在实践中有很多重叠之处,它们各自强调的重点有所不同:
8.1滤波(Filtering)
•滤波是一个更广泛的概念,涉及到信号或图像中特定频率成分的选择性保留或抑制。它可以包括低通滤波、高通滤波、带通滤波等多种类型,每种滤波器根据其频率响应来修改图像的内容。
•目的是调整图像的频谱内容,例如,低通滤波可以用来平滑图像,去除高频噪声,同时也会使图像变得稍微模糊;高通滤波则可以增强边缘和细节,但也可能增强噪声。
•滤波不仅用于去噪,还用于图像增强、特征提取、风格化等众多图像处理任务。
8.2去噪(Denoising)
•去噪更具体地指向了消除图像中无用的、随机的噪声部分,其主要目标是恢复图像的原始细节,同时减少或去除由传感器、传输或处理过程中引入的噪声。
•尽管去噪通常通过使用特定的滤波技术来实现,如均值滤波、中值滤波、维纳滤波、小波去噪等,但它更侧重于保持图像的有用信息,同时最大限度地减少噪声的视觉影响。
•去噪方法往往更加注重保持图像的边缘和细节清晰,避免过度平滑,这要求算法具有更高的选择性,能够在去除噪声的同时保护图像的结构信息。
8.3小结
简而言之,滤波是一个包含多种目的和方法的总称,而去噪是滤波的一个特定应用,专注于噪声的消除。去噪技术是滤波技术的一个子集,专门设计来解决图像中的噪声问题。
8.4扩展阅读
在HALCON软件中,用于图像去噪的算子有多种,以下是几个常用的去噪算子及其简要说明:
- gauss_filter - 高斯滤波:用于平滑图像并去除高斯噪声。通过应用高斯核对图像进行卷积操作,可以有效降低图像中的随机噪声。
- mean_image - 均值滤波:对图像中的每个像素应用邻域内像素的平均值,以达到平滑图像和减少噪声的效果。这种方法简单但可能会模糊图像细节。
- median_image - 中值滤波:用邻域内像素的中值代替每个像素的值,非常适用于去除椒盐噪声,因为它能很好地保持边缘信息。
- equ_histo_image - 直方图均衡化:虽然主要目的是增强图像的对比度,但通过改变图像的灰度分布,可以在一定程度上改善噪声影响,使图像看起来更加清晰。
- despeckle_filter - 去斑点滤波:特别针对去除图像中的斑点噪声,如扫描文档中的黑点或白点噪声。
- reduce_noise - 减少噪声:这是一个更为智能的去噪算子,它可以根据图像内容自动选择合适的去噪方法,尝试在保持图像细节的同时减少噪声。
- adaptive_median_filter - 自适应中值滤波:相比标准中值滤波,该算子会根据局部区域的特性动态调整滤波窗口大小,更适合复杂场景下的去噪。
9、图像增强与锐化
9.1图像增强(Image Enhancement)
图像增强的目的是改善图像的视觉效果,使得图像更适合人眼观察或进一步的图像分析。该算法并不仅仅专注于增强图像的边缘或细节,而是广泛地增强图像的整体。
常见的应用场景与方案
•对比度增强:调整图像的亮度和对比度,使图像的细节更加突出,更容易被识别。
•色彩增强:改变图像的色饱和度和色调,使其色彩更加鲜艳或更接近真实颜色。
•噪声去除:通过平滑滤波等方法去除图像中的随机噪声,提高图像的清晰度。
•直方图均衡化:调整图像的像素分布,使图像的亮度范围更广,细节更丰富。
9.2图像锐化(Image Sharpening)
图像锐化则是一种专门用来增强图像边缘和细节的技术,它通过强调图像的高频成分来使边缘更加清晰,增强图像的清晰度和细节可见性。
常见的应用场景与方法
•边缘增强:通过增强边缘处的灰度变化,使边缘更加明显。
•高通滤波:使用高通滤波器来突出图像中的细节和边缘,因为这些通常位于图像的高频部分。
•梯度算子:应用如Sobel算子、Laplacian算子等微分算子来检测和增强边缘。
•非锐化掩蔽:这是一种锐化方法,通过从原图像中减去一个轻微模糊的版本来增强边缘。
9.3两者的主要区别
•目的:图像增强旨在整体改善图像质量,而图像锐化专注于增强边缘和细节。
•效果:图像增强可能涉及整个图像的亮度、对比度和色彩调整,图像锐化则主要影响边缘区域。
•适用场景:图像增强适用于多种图像处理场景,而图像锐化通常在需要清晰边界和细节识别的情况下使用。
•副作用:图像锐化有时会增加图像的噪声,因为它放大了图像中的高频成分,包括噪声信号。
在机器视觉应用中,这两种技术常常结合使用,以达到最佳的图像处理效果。
9.4扩展知识
在Halcon中,常见的图像增强算子如下:
- scale_image_max这个算子可以缩放图像的灰度值,从而实现灰度级的增强或减弱,常用于调整图像对比度。
- 2. gamma_image用于校正图像的伽玛值,可以改变图像的亮度和对比度。
- 3. emphasize对比度增强算子,可以增强图像的对比度,使图像特征更加明显。
- 4. equ_histo_image直方图修改算子,用于调整图像的亮度和对比度,比如直方图均衡化。
- 5. illumination用于补偿图像中的光照不均匀,增强图像的均匀性。
在机器视觉图像处理中,傅立叶变换(Fourier Transform)和拉普拉斯变换(Laplace Transform)都是非常重要的算法工具,被广泛用于图像分析、滤波等领域。
10、傅立叶变换与拉普拉斯变换
10.1傅立叶变换(Fourier Transform)
傅立叶变换是一种将信号从时域(或空域)转换到频域的数学工具。
在图像处理中,傅立叶变换将图像从空间域转换到频率域,这样就可以更容易地分析和处理图像中的低频或是高频成分。
傅立叶变换在机器视觉缺陷检测中应用比较广泛特,它可以揭示图像中的低频(平滑区域)和高频(边缘和细节)成分。
应用场景
频率域滤波:通过在频域中应用低通滤波器或高通滤波器,可以去除噪声或增强图像的某些特征,如锐化边缘。
图像压缩:傅立叶变换可以用于图像的频谱分析,基于图像的频率成分进行有损或无损压缩,如JPEG压缩算法就利用了离散余弦变换(DCT),而DCT与傅立叶变换有密切联系。
图像恢复:在图像受到噪声污染时,可以通过频域滤波来恢复图像的清晰度。
10.2拉普拉斯变换(Laplace Transform)
拉普拉斯变换是一种更广泛的变换,它在傅立叶变换的基础上增加了实部的指数衰减因子,这使得它可以处理不稳定或非周期性的信号。然而,在图像处理中,拉普拉斯变换的应用不如傅立叶变换普遍,但在某些情况下,如边缘检测和图像锐化,拉普拉斯变换或其离散版本(如拉普拉斯算子)可以发挥作用。
应用场景
边缘检测:拉普拉斯算子可以用于检测图像中的边缘,因为边缘在图像中表现为灰度值的突然变化,这在拉普拉斯变换中表现为高频成分。
图像锐化:通过应用拉普拉斯算子,可以增强图像中的高频成分,从而锐化图像。
图像重建:在某些情况下,拉普拉斯变换可以用于从频域中的信息重建图像。
傅立叶变换和拉普拉斯变换在图像处理中的应用各有侧重。傅立叶变换更常用于频率域滤波、图像压缩和恢复等,而拉普拉斯变换及其离散算子更多用于边缘检测和图像锐化。

在机器视觉领域,尤其是目标检测任务中,NMS(Non-Maximum Suppression,非极大值抑制)和IoU(Intersection over Union,交并比)是非常重要的概念。
11、IoU与NMS
11.1IoU(交并比)
IoU是一个衡量两个矩形框(通常是预测框和真实框)重叠程度的指标。它通过计算两个框交集的面积占两个框并集面积的比例来评估重叠的程度。IoU的计算公式如下:
•用途:
IoU常用于评估目标检测算法的准确度,特别是用于确定预测框与真实框的匹配程度。
在训练和评估阶段,IoU被用来决定预测框是否足够接近真实框,通常会设定一个阈值(比如0.5),IoU高于此阈值的预测框被视为正确的检测。
11.2NMS(非极大值抑制)
NMS是一种后处理技术,用于减少目标检测中冗余的边界框。
在目标检测中,同一物体可能会被检测到多次,产生多个重叠的边界框。NMS算法通过比较这些边界框的IoU和置信度得分,来选择最优的边界框并抑制其他重叠的框。
•步骤:
- 根据每个边界框的置信度得分排序。
- 选取得分最高的框。
- 计算这个框与剩余框的IoU。
- 删除与当前最高得分框IoU超过预设阈值的所有框。
- 重复步骤2-4,直到所有框都被处理。
•用途:
NMS确保每个检测到的对象只有一个边界框,提高了检测结果的准确性,减少了冗余,是目标检测算法中不可或缺的一部分。
11.3两者区别
•IoU 是一个度量标准,用于量化两个边界框之间的重叠程度。
•NMS 是一种算法,利用IoU来筛选掉多余的边界框,保留最准确的检测结果。
简单来说,IoU用于评估和比较,而NMS用于优化和精简检测结果。在现代目标检测算法中,两者通常结合使用,IoU用于评估预测框与真实框的匹配程度,而NMS用于从多个可能的预测框中选择最合适的那个。
在机器视觉行业中,海森矩阵(Hessian Matrix)和灰度共生矩阵(Gray Level Co-occurrence Matrix, GLCM)是两种完全不同的数学工具,它们在图像处理和分析中有各自独特的应用领域。
12、海森矩阵与灰度共生矩阵
12.1海森矩阵(Hessian Matrix)
海森矩阵是多元函数的二阶偏导数构成的矩阵,它在图像处理中主要用于特征检测,特别是边缘、角点和斑点的检测。
在机器视觉中,海森矩阵常用于以下方面:
- 特征点检测:如Harris角点检测算法和SIFT(Scale-Invariant Feature Transform)特征点检测,通过分析海森矩阵的特征值和特征向量来定位图像中的显著点。
- 斑点检测:通过海森矩阵的特征值分析,可以识别图像中的斑点或小区域特征。
- 图像配准:在图像配准时,海森矩阵可以用于估计图像梯度的变化,帮助找到最佳的匹配位置。
12.2灰度共生矩阵(GLCM)
灰度共生矩阵是一种统计方法,用于分析图像中灰度级的空间相关性,从而提取图像的纹理特征。
GLCM在机器视觉中的应用主要包括:
- 纹理分析:通过计算GLCM的不同统计量(如对比度、能量、熵、同质性等),可以定量描述图像的纹理特征,这对于区分不同类型的表面和材料非常有用。
- 目标识别:在基于纹理的目标识别任务中,GLCM可以提供额外的信息,帮助算法更准确地区分不同的物体或场景。
- 图像分割:利用GLCM的纹理特征,可以辅助图像分割过程,提高分割的准确性和鲁棒性。
12.3应用区别总结
•海森矩阵主要应用于特征点检测,边缘和斑点的识别,以及图像配准等任务,它关注的是图像局部区域的几何特性。
•灰度共生矩阵则侧重于纹理分析,用于描述图像中灰度值的空间分布模式,适用于纹理特征提取和基于纹理的图像处理任务。两者在数学性质和应用领域上存在明显的区别,但都为机器视觉提供了强大的工具,用于理解和解析图像中的不同特性。
在实际应用中,根据具体的分析需求和目标,会选择合适的方法来处理图像数据。




