Interface GradientCornerIntensity<T extends ImageGray<T>>
- All Superinterfaces:
FeatureIntensity<T>
- All Known Implementing Classes:
ImplSsdCorner_F32
,ImplSsdCorner_F32_MT
,ImplSsdCorner_S16
,ImplSsdCorner_S16_MT
,ImplSsdCornerBase
,ImplSsdCornerBox
,ImplSsdCornerNaive
,ImplSsdCornerWeighted_F32
,ImplSsdCornerWeighted_F32_MT
,ImplSsdCornerWeighted_S16
,ImplSsdCornerWeighted_S16_MT
Several different types of corner detectors [1,2] all share the same initial processing steps. First a 2 by 2 deformation matrix D = [ Ixx , Ixy ; Iyx , Iyy] is computed around each pixel. D is computed by summing up the product of each pixel's gradient inside of a window. Next how corner like each pixel is computed using the information in the deformation matrix. In the final step where each of these techniques differ.
Ixx = Sum dX*dX
Ixy = Iyx = Sum dX*dY
Iyy = Sum dY*dY
where the Sum is the sum across all the pixels within a rectangular window, and [dX,dY] is a pixel's gradient.
Alternative implementations can consider a weighted window around the pixel. By considering only a uniform set of weights several optimizations are possible. The runtime is independent of the window size and can be very efficiently computed.
[1] Jianbo Shi and Carlo Tomasi. Good Features to Track. IEEE Conference on Computer Vision and Pattern Recognition,
pages 593-600, 1994
[2] E.R. Davies, "Machine Vision Theory Algorithms Practicalities," 3rd ed. 2005
-
Method Summary
Methods inherited from interface boofcv.alg.feature.detect.intensity.FeatureIntensity
getIgnoreBorder, getRadius
-
Method Details
-
process
Computes feature intensity image.- Parameters:
derivX
- Image derivative along the x-axis.derivY
- Image derivative along the y-axis.intensity
- Output intensity image
-
getInputType
Type of input image.
-