Searching corners in images.
The operator corner_response__ helps to extract grayvalue corners in an image. The formula for the calculation is as follows:
R(x,y) = A(x,y) B(x,y) - C^2(x,y) - Weight (A(x,y) + B(x,y))^2 A and B are the smoothed direction derivatives and C is the smoothing of the products of the direction derivatives,whereby I is the input image and R the output image of the filtering. The operator gauss__ is used for smoothing (W), the operator sobel_amp is used for calculating the derivative ().
The corner response function is invariant with regard to rotation. In order to achieve a suitable dependency of the function R(x,y) of the local gradient, the parameter Weight has to be set to 0.04. Thereby only grayvalue corners will return positive values for R(x,y), while straight edges will receive negative values (if clipped they will receive 0).
Image (input_object) |
image(-array) -> object : byte |
Input image. |
ImageCorner (output_object) |
image(-array) -> object : byte |
Result of the filtering. | |
Number of elements: ImageCorner == Image |
Size (input_control) |
integer -> integer |
Desired filtersize of the graymask. | |
Default value: 3 | |
List of values: 3, 5, 7, 9, 11 |
Weight (input_control) |
real -> real |
Weighting. | |
Default value: 0.04 | |
Range of values: 0.0 <= Weight <= 0.3 | |
Minimum increment: 0.001 | |
Recommended increment: 0.01 |
read_image(&Fabrik,"fabrik"); corner_response__(Fabrik,&CornerResponse,3,0.04); local_max(CornerResponse,&LocalMax); disp_image(Fabrik); set_color("red"); disp_region(LocalMax);
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.