public class HessianFromGradient
extends java.lang.Object
These functions compute the image hessian by computing the image gradient twice. While about twice as fast as computing the Hessian directly from a larger kernel, it requires additional storage space.
NOTE: A subtle design flaw in many of these operations is that they add more image blur each time the derivative is computed. For example, with the sobel operator is is derived by convolving a blur kernel with a derivative kernel. So applying it twice to computer the second order x-derivative is the same as blurring it twice then applying the derivative operator twice. Thus it is not th true second order derivative. Having said that, this issue is of little practical importance and is hard to detect..
| Constructor and Description |
|---|
HessianFromGradient() |
| Modifier and Type | Method and Description |
|---|---|
static void |
hessianPrewitt(ImageFloat32 inputDerivX,
ImageFloat32 inputDerivY,
ImageFloat32 derivXX,
ImageFloat32 derivYY,
ImageFloat32 derivXY,
ImageBorder_F32 border)
Computes the hessian given an image's gradient using a Prewitt operator.
|
static void |
hessianPrewitt(ImageSInt16 inputDerivX,
ImageSInt16 inputDerivY,
ImageSInt16 derivXX,
ImageSInt16 derivYY,
ImageSInt16 derivXY,
ImageBorder_S32 border)
Computes the hessian given an image's gradient using a Prewitt operator.
|
static void |
hessianSobel(ImageFloat32 inputDerivX,
ImageFloat32 inputDerivY,
ImageFloat32 derivXX,
ImageFloat32 derivYY,
ImageFloat32 derivXY,
ImageBorder_F32 border)
Computes the hessian given an image's gradient using a Sobel operator.
|
static void |
hessianSobel(ImageSInt16 inputDerivX,
ImageSInt16 inputDerivY,
ImageSInt16 derivXX,
ImageSInt16 derivYY,
ImageSInt16 derivXY,
ImageBorder_S32 border)
Computes the hessian given an image's gradient using a Sobel operator.
|
static void |
hessianThree(ImageFloat32 inputDerivX,
ImageFloat32 inputDerivY,
ImageFloat32 derivXX,
ImageFloat32 derivYY,
ImageFloat32 derivXY,
ImageBorder_F32 border)
Computes the hessian given an image's gradient using a three derivative operator.
|
static void |
hessianThree(ImageSInt16 inputDerivX,
ImageSInt16 inputDerivY,
ImageSInt16 derivXX,
ImageSInt16 derivYY,
ImageSInt16 derivXY,
ImageBorder_S32 border)
Computes the hessian given an image's gradient using a three derivative operator.
|
public static void hessianPrewitt(ImageSInt16 inputDerivX, ImageSInt16 inputDerivY, ImageSInt16 derivXX, ImageSInt16 derivYY, ImageSInt16 derivXY, ImageBorder_S32 border)
inputDerivX - Already computed image x-derivative.inputDerivY - Already computed image y-derivative.derivXX - Output second XX partial derivative.derivYY - Output second YY partial derivative.derivXY - Output second XY partial derivative.border - Specifies how the image border is handled. If null the border is not processed.public static void hessianPrewitt(ImageFloat32 inputDerivX, ImageFloat32 inputDerivY, ImageFloat32 derivXX, ImageFloat32 derivYY, ImageFloat32 derivXY, ImageBorder_F32 border)
inputDerivX - Already computed image x-derivative.inputDerivY - Already computed image y-derivative.derivXX - Output second XX partial derivative.derivYY - Output second YY partial derivative.derivXY - Output second XY partial derivative.border - Specifies how the image border is handled. If null the border is not processed.public static void hessianSobel(ImageSInt16 inputDerivX, ImageSInt16 inputDerivY, ImageSInt16 derivXX, ImageSInt16 derivYY, ImageSInt16 derivXY, ImageBorder_S32 border)
inputDerivX - Already computed image x-derivative.inputDerivY - Already computed image y-derivative.derivXX - Output second XX partial derivative.derivYY - Output second YY partial derivative.derivXY - Output second XY partial derivative.border - Specifies how the image border is handled. If null the border is not processed.public static void hessianSobel(ImageFloat32 inputDerivX, ImageFloat32 inputDerivY, ImageFloat32 derivXX, ImageFloat32 derivYY, ImageFloat32 derivXY, ImageBorder_F32 border)
inputDerivX - Already computed image x-derivative.inputDerivY - Already computed image y-derivative.derivXX - Output second XX partial derivative.derivYY - Output second YY partial derivative.derivXY - Output second XY partial derivative.border - Specifies how the image border is handled. If null the border is not processed.public static void hessianThree(ImageSInt16 inputDerivX, ImageSInt16 inputDerivY, ImageSInt16 derivXX, ImageSInt16 derivYY, ImageSInt16 derivXY, ImageBorder_S32 border)
inputDerivX - Already computed image x-derivative.inputDerivY - Already computed image y-derivative.derivXX - Output second XX partial derivative.derivYY - Output second YY partial derivative.derivXY - Output second XY partial derivative.border - Specifies how the image border is handled. If null the border is not processed.public static void hessianThree(ImageFloat32 inputDerivX, ImageFloat32 inputDerivY, ImageFloat32 derivXX, ImageFloat32 derivYY, ImageFloat32 derivXY, ImageBorder_F32 border)
inputDerivX - Already computed image x-derivative.inputDerivY - Already computed image y-derivative.derivXX - Output second XX partial derivative.derivYY - Output second YY partial derivative.derivXY - Output second XY partial derivative.border - Specifies how the image border is handled. If null the border is not processed.