使用MFC联合Halcon,将HDevelop中的演示结果用MFC中对话框的形式显示高斯导数卷积图像
* usage as smoothing filter
read_image (Meningg5, 'meningg5')
//derivate_gauss — 用高斯导数卷积图像
derivate_gauss (Meningg5, Smoothed, 2, 'none')
//convert_image_type — 转换图像的类型
convert_image_type (Smoothed, SmoothedByte, 'byte')
//watersheds — Extract watersheds and basins from an image.
watersheds (SmoothedByte, Basins, Watersheds)
dev_display (Meningg5)
dev_set_draw ('margin')
dev_set_colored (6)
dev_display (Basins)
stop ()
* usage as edge detector
read_image (Image, 'mreut')
derivate_gauss (Image, GradientAmpl, 1.5, 'gradient')
threshold (GradientAmpl, Gradient, 10, 255)
dev_display (Image)
dev_set_draw ('fill')
dev_set_color ('red')
dev_display (Gradient)
stop ()
* usage as corner detector
read_image (Image, 'fabrik')
derivate_gauss (Image, Det, 1.5, 'det')
threshold (Det, Corners, 20, 1000000)
dev_display (Image)
dev_set_draw ('fill')
dev_set_color ('red')
dev_display (Corners)
stop ()
* Usage as edge detector
read_image (Image, 'mreut')
derivate_gauss (Image, EdgesAreZero, 3, '2nd_ddg')
zero_crossing (EdgesAreZero, Edges)
dev_display (Image)
dev_set_draw ('fill')
dev_set_color ('red')
dev_display (Edges)
derivate_gauss — Convolve an image with derivatives of the Gaussian.
derivate_gauss(Image : DerivGauss : Sigma, Component : )
//参数
Image (input_object) //Input images.
DerivGauss (output_object) //Filtered result images.
Sigma (input_control) //Sigma of the Gaussian.
Default value: 1.0
Suggested values: 0.7, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0
Typical range of values: 0.2 ≤ Sigma ≤ 50.0
Minimum increment: 0.01
Recommended increment: 0.1
Restriction: Sigma > 0.0
Component (input_control) //要计算的导数或特征
Default value: 'x'
List of values: '2nd_ddg', 'area', 'de_saint_venant', 'det', 'eigenvalue1',
'eigenvalue2', 'eigenvec_dir', 'gauss_curvature', 'gradient',
'gradient_dir', 'kitchen_rosenfeld', 'laplace', 'main1_curvature',
'main2_curvature', 'mean_curvature', 'none', 'x', 'xx', 'xxx', 'xxy',
'xy', 'xyy', 'y', 'yy', 'yyy', 'zuniga_haralick'
List of values (for compute devices): 'none', 'x', 'y', 'gradient',
'gradient_dir', 'xx', 'yy', 'xy', 'xxx', 'yyy', 'xxy', 'xyy', 'laplace'
derivate_gauss 将图像与高斯的导数进行卷积,并计算由此导出的各种特征。 Sigma 是 Gaussian 的参数(即平滑量)。 如果在 Sigma 中传递一个值,则列和行方向的平滑量是相同的。 如果在 Sigma 中传递两个值,第一个值指定列方向的平滑量,而第二个值指定行方向的平滑量。 Component 的可能值是:
'none':
Smoothing only.
'x':
沿 x 的一阶导数
'y':
沿 y 的一阶导数
'gradient':
梯度的绝对值
'gradient_dir':
以弧度表示的渐变方向
'xx':
沿 x 的二阶导数
'yy':
沿 y 的二阶导数
'xy':
沿 x 和 y 的二阶偏导数
'xxx':
沿 x 的三阶导数
'yyy':
沿 y 的三阶导数
'xxy':
沿 x、x 和 y 的三阶偏导数
'xyy':
沿 x、y 和 y 的三阶导数
'det':
Hessian 矩阵的行列式:
'laplace':
拉普拉斯算子(Hessian 矩阵的迹):
'mean_curvature':
平均曲率 H
'gauss_curvature':
高斯曲率 K
'area':
差分区域A
'eigenvalue1':
第一特征值
'eigenvalue2':
第二特征值
'eigenvec_dir':
以弧度为单位的第一个特征值对应的特征向量的方向
'kitchen_rosenfeld':
垂直于梯度的二阶导数
'zuniga_haralick':
垂直于梯度的归一化二阶导数
'2nd_ddg':
沿梯度的二阶导数
'de_saint_venant':
沿和垂直于梯度的二阶导数