corner_responsecorner_responseCornerResponseCornerResponsecorner_response角点响应(算子)

名称

corner_responsecorner_responseCornerResponseCornerResponsecorner_response — 在图像中搜索角点。

签名

corner_response(Image : ImageCorner : Size, Weight : )

Herror corner_response(const Hobject Image, Hobject* ImageCorner, const Hlong Size, double Weight)

Herror T_corner_response(const Hobject Image, Hobject* ImageCorner, const Htuple Size, const Htuple Weight)

void CornerResponse(const HObject& Image, HObject* ImageCorner, const HTuple& Size, const HTuple& Weight)

HImage HImage::CornerResponse(Hlong Size, double Weight) const

static void HOperatorSet.CornerResponse(HObject image, out HObject imageCorner, HTuple size, HTuple weight)

HImage HImage.CornerResponse(int size, double weight)

def corner_response(image: HObject, size: int, weight: float) -> HObject

描述

算子 corner_responsecorner_responseCornerResponseCornerResponseCornerResponsecorner_response 可提取图像中的灰度值角点。响应值的计算公式为: 其中 I 为输入图像,R 为滤波器输出图像。算子 gauss_imagegauss_imageGaussImageGaussImageGaussImagegauss_image 用于平滑(W),算子 sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp 用于计算导数

角点响应函数对旋转不变。为使函数 R(x,y) 与局部梯度建立合理关联,参数 WeightWeightWeightWeightweightweight必须设置为0.04。如此设置后,仅灰度值角点会使 R(x,y) 返回正值,而直边则返回负值。输出图像类型与输入图像类型相同。因此,若使用 byte 图像作为输入,负输出值将被设为 0。若不希望如此,应通过 convert_image_typeconvert_image_typeConvertImageTypeConvertImageTypeConvertImageTypeconvert_image_type 将输入图像转换为 real 或 int2 图像。

注意

请注意,若使用域缩减后的图像作为输入,滤波器算子可能会返回意外结果。请参阅 滤波器 一章

执行信息

参数

ImageImageImageImageimageimage (输入对象)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / uint2 / int2 / real)

输入图像。

ImageCornerImageCornerImageCornerImageCornerimageCornerimage_corner (输出对象)  multichannel-image(-array) objectHImageHObjectHImageHobject * (byte / uint2 / int2 / real)

滤波结果。

元素数量: ImageCorner == Image

SizeSizeSizeSizesizesize (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

灰度掩模的期望滤波器尺寸。

默认值: 3

建议值: 3, 5, 7, 9, 11

WeightWeightWeightWeightweightweight (输入控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

权重。

默认值: 0.04

值范围: 0.0 ≤ Weight Weight Weight Weight weight weight ≤ 0.3

最小增量: 0.001

建议增量: 0.01

示例(C)

read_image(&Fabrik,"fabrik");
corner_response(Fabrik,&CornerResponse,3,0.04);
local_max(CornerResponse,&LocalMax);
disp_image(Fabrik,WindowHandle);
set_color(WindowHandle,"red");
disp_region(LocalMax,WindowHandle);

可能的后继

local_maxlocal_maxLocalMaxLocalMaxLocalMaxlocal_max, thresholdthresholdThresholdThresholdThresholdthreshold

另见

gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter, sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp, convert_image_typeconvert_image_typeConvertImageTypeConvertImageTypeConvertImageTypeconvert_image_type

参考文献

C.G. Harris, M.J. Stephens, “A combined corner and edge detector”'; Proc. of the 4th Alvey Vision Conference; August 1988; pp. 147-152.
H. Breit, “Bestimmung der Kameraeigenbewegung und Gewinnung von Tiefendaten aus monokularen Bildfolgen”; Diplomarbeit am Lehrstuhl für Nachrichtentechnik der TU München; 30. September 1990.

模块

基础