【均值滤波mean】

文章目录

  • Halocn中均值滤波
    • 1、gen_mean_filter (Operator)
      • MFC联合Halcon处理效果
    • 2、mean_curvature_flow (Operator)
      • MFC联合Halcon处理效果
    • 3、mean_image (Operator)
    • 4、mean_matrix (Operator)
    • 5、mean_n (Operator)
    • 6、mean_sp (Operator)
    • 7、noise_distribution_mean (Operator)
    • 8、region_to_mean (Operator)
      • classify_image_class_svm
      • classify_image_class_mlp
    • 9、regiongrowing_mean (Operator)
      • MFC联合Halcon效果
    • 10、smooth_funct_1d_mean (Operator)
    • 11、trimmed_mean (Operator)
    • 12、tuple_mean (Operator)


Halocn中均值滤波

1、gen_mean_filter (Operator)

gen_mean_filter — 在频域中的均值滤波器。 :

gen_mean_filter 在频域中生成均值滤波器。均值滤波器的形状由 MaskShape 决定。对于 MaskShape = ‘rectangle’,生成一个矩形均值滤波器。对于 MaskShape = ‘ellipse’,会生成一个椭圆均值滤波器。空间域中均值滤波器的直径(即平滑量)由 Diameter1 和 Diameter2 确定。直径 1 是由角度 Phi 确定的空间域中滤波器的主方向上的直径。为了实现过滤操作的最大整体效率,参数 Norm 可用于指定过滤器的归一化因子。如果使用 fft_generic 和 Norm = ‘n’,则可以避免 FFT 中的归一化。模式可用于确定滤波器的 DC 项位于何处或是否应在实值 FFT 中使用滤波器。如果使用 fft_generic,则可以使用“dc_edge”来提高效率。如果 fft_image 和 fft_image_inv 用于过滤,则必须使用 Norm = ‘none’ 和 Mode = ‘dc_center’。如果使用 rft_generic,则必须使用 Mode = ‘rft’。

gen_mean_filter(
ImageMean,    //均值滤波器作为频域中的图像
MaskShape,    //Shape of the filter mask in the spatial domain.
			  //Default value: 'ellipse'
		      //List of values: 'ellipse', 'rectangle'
Diameter1,    //空间域中滤波器主方向的均值滤波器直径。
			  //Default value: 11.0
              //Suggested values: 3.0, 5.0, 7.0, 9.0, 11.0, 15.0, 21.0, 31.0, 51.0
             //Restriction: Diameter1 > 0
Diameter2,   //在空间域中垂直于滤波器主方向的均值滤波器的直径。 
Phi,         //空间域中滤波器的主方向。
			 //Default value: 0.0
			 //Suggested values: 0.0, 0.523599, 0.785398, 1.047198, 1.570796, 2.094395, 2.356194, 2.617994, 3.141593          
Norm, 	     //过滤器的归一化因子。
			 //Default value: 'none'
			 //List of values: 'n', 'none'
Mode,        //Location of the DC term in the frequency domain.
		   	 //Default value: 'dc_center'
		 	 //List of values: 'dc_center', 'dc_edge', 'rft'
Width,       //Width of the image (filter).
			 //Default value: 512
			 //List of values: 128, 160, 192, 256, 320, 384, 512, 640, 768, 1024, 2048, 4096, 8192
Height       //Height of the image (filter).
			 //Default value: 512
			 //List of values: 120, 128, 144, 240, 256, 288, 480, 512, 576, 1024, 2048, 4096, 8192
)

MFC联合Halcon处理效果

【均值滤波mean】_第1张图片
注:具体工程代码见MFC联合Halcon处理gen_mean_filter


2、mean_curvature_flow (Operator)

mean_curvature_flow — Apply the mean curvature flow to an image.:

算子 mean_curvature_flow 应用平均曲率流或固有热方程

在这里插入图片描述

mean_curvature_flow(
Image,        //Input image.
ImageMCF,     //Output image.
Sigma,        //导数算子的平滑参数。
Theta, 		  //Time step.
Iterations    //Number of iterations.
)

MFC联合Halcon处理效果

使用平均曲率流增强血管造影图像

【均值滤波mean】_第2张图片
注:具体工程代码见MFC联合Halcon处理mean_curvature_flow


3、mean_image (Operator)

mean_image — Smooth by averaging.:

算子mean_image对所有输入图像(Image)的灰度值进行线性平滑。过滤器矩阵由 1 组成(评估相同),大小为 MaskHeight x MaskWidth。卷积的结果除以 MaskHeight x MaskWidth 。对于边界处理,灰度值反映在图像边缘。
对于 mean_image,使用 SIMD 技术实现了特殊优化。这些特殊优化的实际应用由系统参数“mmx_enable”控制(参见 set_system)。如果“mmx_enable”设置为“true”(并且 SIMD 指令集可用),则使用 SIMD 技术执行内部计算。请注意,SIMD 技术在大而紧凑的输入区域上表现最佳。根据输入区域和硬件的能力,使用 SIMD 技术执行 mean_image 甚至可能比不使用 SIMD 技术花费更多的时间。
无论如何,选择 Image 的输入区域以避免任何边界处理对 mean_image 的性能是有利的.

mean_image(
Image,      //Image to be smoothed.
ImageMean,  //Smoothed image.
MaskWidth,  //Width of filter mask.
MaskHeight  //Height of filter mask.
)

4、mean_matrix (Operator)

mean_matrix — Returns the elementwise mean of a matrix.:

运算符 mean_matrix 返回由矩阵句柄 MatrixID 定义的矩阵元素的平均值。 使用结果生成一个新矩阵 MatrixMean,并返回该矩阵的矩阵句柄 MatrixMeanID。 可以访问矩阵的元素,例如 使用运算符 get_full_matrix。
可以通过参数 MeanType 选择矩阵的均值确定类型:

‘columns’:
分别为矩阵的每一列返回平均值。 生成的矩阵 MatrixMean 具有与输入矩阵相同的一行和相同的列数。
例子:

在这里插入图片描述

‘rows’:
分别为矩阵的每一行返回平均值。 生成的矩阵 MatrixMean 具有与输入矩阵相同的行数和一列。
例子:

【均值滤波mean】_第3张图片

‘full’:
使用矩阵的所有元素返回平均值。 生成的矩阵 MatrixMean 有一行和一列。
Example:

在这里插入图片描述

mean_matrix( 
MatrixID, 
MeanType,
MatrixMeanID
)

【均值滤波mean】_第4张图片
注:具体工程代码见MFC联合Halcon处理adjust_circle_matrix


5、mean_n (Operator)

mean_n — Average gray values over several channels.:

void MeanN(
const HObject& Image,  //Multichannel gray image.
HObject* ImageMean     //Result of averaging.
)

运算符 mean_n 生成所有通道的逐像素平均值。 对于每个坐标点,计算该坐标处所有灰度值的总和。 结果是灰度值的平均值(总和除以通道数)。 输出图像有一个通道。 `


6、mean_sp (Operator)

mean_sp — 抑制椒盐噪声。:

运算符 MeanSp 通过对这些值进行平均来执行平滑。 仅对从 MinThresh 到 MaxThresh 区间内的灰度值进行平均。 在求和过程中忽略太亮或太暗的灰度值。 如果求和过程中默认区间内没有灰度值,则采用原始灰度值。 如果阈值分别设置为 0 或 255,则运算符 MeanSp 的行为类似于 MeanImage,但运行时间除外。
运算符 MeanSp 用于抑制极端灰度值(椒盐噪声 = 白点和黑点)。

void MeanSp(
const HObject& Image, 
HObject* ImageSPMean, 
const HTuple& MaskWidth, 
const HTuple& MaskHeight, 
const HTuple& MinThresh, 
const HTuple& MaxThresh
)


7、noise_distribution_mean (Operator)

确定图像的噪声分布。 :

noise_distribution_mean 计算图像 Image 的某个区域中的噪声分布。 参数 ConstRegion 确定具有近似恒定灰度值的图像区域。 理想情况下,灰度值的变化应该只由该区域的噪声引起。 从此区域确定噪声分布,通过使用 mean_image 算子对图像进行平滑处理,并使用该区域的灰度值差异作为噪声分布的估计值,该估计值在 Distribution 中返回。

noise_distribution_mean(
ConstRegion,   //Region from which the noise distribution is to be estimated.
Image,        //Corresponding image.
FilterSize,   //Size of the mean filter.
Distribution  //Noise distribution of all input regions.
)

8、region_to_mean (Operator)

region_to_mean — Paint regions with their average gray value.:

region_to_mean(
Regions,   //Input regions.
Image,     //original gray-value image.
ImageMean  //Result image with painted regions.
)

classify_image_class_svm

Segment an RGB image with an SVM classifier

【均值滤波mean】_第5张图片

classify_image_class_mlp

Segment an RGB image with an MLP classifier

【均值滤波mean】_第6张图片


9、regiongrowing_mean (Operator)

regiongrowth_mean — 使用平均灰度值执行区域增长 :

regiongrowth_mean 使用区域的平均灰度值执行区域增长,从 StartRows 和 StartColumns 给出的点开始。 在过程中的任何时候,都会计算当前区域的平均灰度值。 如果区域边界处的灰度值与当前平均值的差异小于 Tolerance,则将其添加到区域中。 小于 MinSize 的区域被抑制。

如果没有给出起始点(空元组),则扩展过程从最左上角开始,并在创建区域后从第一个未处理的点继续。

regiongrowing_mean(
Image,         //Segmented regions.
Regions,       //Segmented regions.
StartRows,     //Row coordinates of the starting points.
StartColumns,  //Column coordinates of the starting points.
Tolerance,    //Maximum deviation from the mean.
MinSize       //Minimum size of a region.
)

MFC联合Halcon效果

【均值滤波mean】_第7张图片


10、smooth_funct_1d_mean (Operator)

smooth_funct_1d_mean — Smooth an equidistant 1D function by averaging its values.:

运算符 smooth_funct_1d_mean 通过多次应用平均(均值)滤波器来平滑一维函数。 该函数必须是等距的,即使用 create_funct_1d_array、sample_funct_1d 或类似函数创建。 在函数边界处,函数值被镜像。
如果给 SmoothSize 一个偶数值而不是一个奇数值,则例程使用下一个较大的奇数值代替(这样总是明确地确定过滤器掩码的中心)。

smooth_funct_1d_mean(
Function,      //1D function.
SmoothSize,    //Size of the averaging mask.
Iterations,    //Number of iterations for the smoothing.
SmoothedFunction  //Smoothed function.
)


11、trimmed_mean (Operator)

trimmed_mean — Smooth an image with an arbitrary rank mask.:

算子 trimmed_mean 对所有输入图像 (Image) 的灰度值进行非线性平滑。 过滤器掩码(Mask)以区域的形式传递。 计算位于中值附近的 Number 灰度值的平均值。 可以选择几种边界处理进行过滤(Margin):

灰度值 假定图像边缘之外的像素是恒定的(具有指示的灰度值)。
‘continue’ 边缘像素的延续。
‘cyclic’ 图像边缘的循环延续。
‘mirrored’ 图像边缘像素的反射。

trimmed_mean(
Image,       //Image to be filtered.
Mask,        //Image whose region serves as filter mask.
ImageTMean, //Filtered output image.
Number,     //Number of averaged pixels. Typical value: Surface(Mask) / 2.
Margin      //Border treatment.
)


12、tuple_mean (Operator)

tuple_mean — Return the mean value of a tuple of numbers.:

tuple_mean(
Tuple,  //Input tuple.
Mean    //Mean value of tuple elements.
)

tuple_mean 将输入元组 Tuple 的所有元素的平均值作为输出参数 Mean 中的浮点数返回。 输入元组可能只包含数字(整数或浮点数)。


你可能感兴趣的:(HALCON,c++,图像处理)