Page 234 - The Definitive Guide to Building Java Robots
P. 234
Preston_5564C06.fm Page 215 Friday, September 23, 2005 5:13 AM
CHAPTER 6 ■ VISION 215
Figure 6-22. The high-pass/sharpening filter
Example 6-27. sobelGradient(): edges
public BufferedImage sobelGradMag(BufferedImage srcImg) {
PlanarImage input = bufferedToPlanar(srcImg);
KernelJAI vert = KernelJAI.GRADIENT_MASK_SOBEL_VERTICAL;
KernelJAI horz = KernelJAI.GRADIENT_MASK_SOBEL_HORIZONTAL;
ParameterBlock pb = new ParameterBlock();
pb.addSource(input);
pb.add(vert);
pb.add(horz);
PlanarImage output = JAI.create("gradientmagnitude", pb).createInstance();
return planarToBuffered(output);
}
Figure 6-23. The Sobel Gradient filter
The last filter to find edges is very useful in image analysis because you can start to see the
lines formed by the objects. Those lines when applied with another algorithm—called the
Hough transform—can be used to recognize and differentiate between objects.