[图像处理] Java图像图片 边缘检测

javapub 2010-06-21
对图片进行边缘检测在很多领域是非常重要的,例如:车牌号码的识别。边缘检测用到的算法我这里既不关心也不去深究了,只提供算法,对算法有兴趣的读者可以自己去找找图像处理的书参考下,或者也可以给我留言。
public final BufferedImage getPicEdge(BufferedImage originalPic) {
		int imageWidth = originalPic.getWidth();
		int imageHeight = originalPic.getHeight();

		BufferedImage newPic = new BufferedImage(imageWidth, imageHeight,
				BufferedImage.TYPE_3BYTE_BGR);

		float[] elements = { 0.0f, -1.0f, 0.0f, -1.0f, 4.0f, -1.0f, 0.0f,
				-1.0f, 0.0f };

		// AffineTransform at = new AffineTransform();
		Kernel kernel = new Kernel(3, 3, elements);
		ConvolveOp cop = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
		cop.filter(originalPic, newPic);
		return newPic;
	}

以上算法大体思路是:拿到一个图片的内存对象:BufferedImage,然后创建一个和原始图片一样大小的新的BufferedImage内存对象,将经过处理后的图片信息存在新的内存对象里,并返回。
运行效果图:
边缘检测前的图片:

边缘检测后的图片:


具体的程序代码请参考附件。

文章地址:http://javapub.iteye.com/blog/685468

相关文章
Java图像图片 边缘检测 http://javapub.iteye.com/blog/685468
Java图像变灰 http://javapub.iteye.com/blog/687082
Java 给图片增加 水印图片 水印文字 [url]Java 给图片增加 水印图片 水印文字[/url]
Java图像渐变 http://javapub.iteye.com/blog/736799
Java将大图片转成小图片 http://javapub.iteye.com/blog/666607
Global site tag (gtag.js) - Google Analytics