/*
* Copyright (c) 2011-2016, Peter Abeles. All Rights Reserved.
*
* This file is part of BoofCV (http://boofcv.org).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package boofcv.alg.feature.detect.intensity;
import boofcv.struct.image.GrayF32;
import boofcv.struct.image.ImageGray;
/**
*
* 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
*
*
* @author Peter Abeles
*/
public interface GradientCornerIntensity extends FeatureIntensity {
/**
* Computes feature intensity image.
*
* @param derivX Image derivative along the x-axis.
* @param derivY Image derivative along the y-axis.
* @param intensity Output intensity image
*/
public void process(T derivX, T derivY , GrayF32 intensity );
}
Ads help maintain this website.