private static BufferedImage gaussianSmooth(BufferedImage sourceImage)
{
// 高斯模板
float[] elements =
{ 1.0f / 16.0f, 2.0f / 16.0f, 1.0f / 16.0f, 2.0f / 16.0f, 4.0f / 16.0f,
2.0f / 16.0f, 1.0f / 16.0f, 2.0f / 16.0f, 1.0f / 16.0f }; BufferedImage bi = new BufferedImage(sourceImage.getWidth(),
sourceImage.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D big = bi.createGraphics();
big.drawImage(sourceImage, 0, 0, null);
// 创建一个Kernel
Kernel kernel = new Kernel(3, 3, elements);
ConvolveOp blur = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
sourceImage = blur.filter(bi, null); return sourceImage;
}
{
// 高斯模板
float[] elements =
{ 1.0f / 16.0f, 2.0f / 16.0f, 1.0f / 16.0f, 2.0f / 16.0f, 4.0f / 16.0f,
2.0f / 16.0f, 1.0f / 16.0f, 2.0f / 16.0f, 1.0f / 16.0f }; BufferedImage bi = new BufferedImage(sourceImage.getWidth(),
sourceImage.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D big = bi.createGraphics();
big.drawImage(sourceImage, 0, 0, null);
// 创建一个Kernel
Kernel kernel = new Kernel(3, 3, elements);
ConvolveOp blur = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
sourceImage = blur.filter(bi, null); return sourceImage;
}
解决方案 »
- 三元运算符输出结果问题
- 如何自动升级自己开发的软件?
- JCreator无法编译项目
- 被雷到了,关于override,Java和C#执行的结果不一样
- 一段小小代码的疑问,望初学者帮解答,谢谢
- 请问:怎么解决接收数据中关于out of order的问题?
- 请教
- 利用游览器游览applet需要什么配置,或需要注意什么? 因为我一直搞不定,谢!!!!
- 谁有O'Reilly出版的《Java Virtual Machine》的ebook?
- 请问哪里有JBoss的文档可以下,当然是不要钱的啰!!!!?
- tomcat在linux上布署的问题
- 一道算术题(java):4~20的floal数值(小数点后四位),0~100的整数作为它的量程同时输出-->a=4的时候b=0,a=20的时候b=100。用什么方法可以打印出中间的数值对。
Kernel kernel = new Kernel(3, 3, elements);
ConvolveOp blur = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
sourceImage = blur.filter(bi, null);
private static BufferedImage gaussianSmooth(BufferedImage sourceImage)
{
// 高斯模板
float[] elements =
{ 1.0f / 16.0f, 2.0f / 16.0f, 1.0f / 16.0f, 2.0f / 16.0f, 4.0f / 16.0f,
2.0f / 16.0f, 1.0f / 16.0f, 2.0f / 16.0f, 1.0f / 16.0f };
//BufferedImage是 一个和你要画的画面的大小一样的一个白板,相当于把sourceImage上的东西先给bufferedImage操作,操作完了又倒回给sourceImage;
BufferedImage bi = new BufferedImage(sourceImage.getWidth(),
sourceImage.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D big = bi.createGraphics();
big.drawImage(sourceImage, 0, 0, null);
// 创建一个Kernel
Kernel kernel = new Kernel(3, 3, elements);
//构造kernel矩阵, 边缘条件为EDGE_NO_OP,RenderingHint 对象为null的卷积;
ConvolveOp blur = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
//对BufferedImage bi 进行卷积再将bufferedImage上的东东倒给sourceImage
sourceImage = blur.filter(bi, null); return sourceImage;