|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.media.jai.OperationDescriptorImpl | +--javax.media.jai.operator.ErodeDescriptor
An OperationDescriptor
describing the "Erode" operation.
Gray Scale Erosion is a spatial operation that computes each output sample by subtracting elements of a kernel from the samples surrounding a particular source sample. The mathematical formulation for erosion operation is:
For a kernel K with a key position (xKey, yKey), the erosion of image I at (x,y) is given by:
max{ f: f + K(xKey+i, yKey+j) <= I(x+i,y+j): all (i,j)} "all" possible (i,j) means that both I(x+i,y+j) and K(xKey+i, yKey+j) are in bounds. Otherwise, the value is set to 0. "f" represents all possible floats satisfying the restriction.
Intuitively, the kernel is like an unbrella and the key point is the handle. At every point, you try to push the umbrella up as high as possible but still underneath the image surface. The final height of the handle is the value after erosion. Thus if you want the image to erode from the upper right to bottom left, the following would do.
0 | 0 | X |
0 | X | 0 |
X | 0 | 0 |
Note that even if every entry of a kernel is zero, the erosion changes the image. Different key positions will also lead to different erosion results for such zero kernels.
Pseudo code for the erosion operation is as follows. Assuming the kernel K is of size M rows x N cols and the key position is (xKey, yKey).
// erosion for every dst pixel location (x,y){ tmp = infinity; for (i = -xKey; i < M - xKey; i++){ for (j = -yKey; j < N - yKey; j++){ if((x+i, y+j) are in bounds of src){ tmp = min{tmp, src[x + i][y + j] - K[xKey + i][yKey + j]}; } } } dst[x][y] = tmp; if (dst[x][y] == infinity) dst[x][y] = 0; }
The kernel cannot be bigger in any dimension than the image data.
Binary Image Erosion requires the kernel to be binary, that is, to have values 0 and 1 for each kernel entry. Intuitively, binary erosion slides the kernel key position and place it at every point (x,y) in the src image. The dst value at this position is set to 1 if the entire kernel lies within the image bounds and the src image value is 1 wherever the corresponding kernel value is 1." Otherwise, the value after erosion at (x,y) is set to 0. Erosion usually shrinks images, but it can fill holes with kernels like
[1 0 1]and the key position at the center.
Pseudo code for the binary erosion operation is as follows.
// erosion for every dst pixel location (x,y){ dst[x][y] = 1; for (i = -xKey; i < M - xKey; i++){ for (j = -yKey; j < N - yKey; j++){ if((x+i,y+j) is out of bounds of src || src(x+i, y+j)==0 && Key(xKey+i, yKey+j)==1){ dst[x][y] = 0; break; } } } } See the following listed references for the underlying connection between these to algorithms.
Name | Value |
---|---|
GlobalName | Erode |
LocalName | Erode |
Vendor | com.sun.media.jai |
Description | Performs kernel based Erode on an image. |
DocURL | http://java.sun.com/products/java-media/jai/forD evelopers/jai-apidocs/javax/media/jai/operator/ErodeDescriptor.html |
Version | 1.1 |
arg0Desc | The erode kernel. |
Name | Class Type | Default Value |
---|---|---|
kernel | javax.media.jai.KernelJAI | NO_PARAMETER_DEFAULT |
Reference: An Introduction to Nonlinear Image Processing, by Edward R. Bougherty and Jaakko Astola, Spie Optical Engineering Press, 1994.
KernelJAI
, Serialized FormFields inherited from class javax.media.jai.OperationDescriptorImpl |
resources,
sourceNames,
supportedModes |
Constructor Summary | |
ErodeDescriptor()
Constructor. |
Method Summary | |
PropertyGenerator[] |
getPropertyGenerators()
Returns an array of PropertyGenerators implementing
property inheritance for the "Erode" operation. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
public ErodeDescriptor()
Method Detail |
public PropertyGenerator[] getPropertyGenerators()
PropertyGenerators
implementing
property inheritance for the "Erode" operation.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |