作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一种使用 3x3 高斯内核模糊 24 位图像的方法。
我得到了以下东西。
3x3 高斯核:
A 是原始图像,B 是结果图像。
B(i,j) =
1/16 * A(i-1,j-1) +1/8 * A(i,j-1) +1/16 * A(i+1,j-1) +1/8 * A(i-1,j) +1/4 * A(i,j) +1/8 *A(i+1,j) +1/16 * A(i-1,j+1) +1/8 * A(i,j+1) +1/16 * A(i+1,j+1)
方法:
public static BufferedImage gaussianBlur(Image img)
其中 img 是输入图像的引用变量。
返回的值是结果图像的对象的地址。
我应该将图像分成9部分来实现这个方法吗?
最佳答案
您不需要将其分为 9 部分。至少,我没有看到这样做的充分理由。
但是在这个过程中你最好小心,记住将图像数据复制到某个地方并始终使用这些数据来计算新图像,避免使用新图像数据来计算新图像。
<小时/>另外,我不明白为什么你需要编写自己的函数来对图像进行高斯模糊。这可以很容易地完成,如下所示:
float[] matrix = {
1/16f, 1/8f, 1/16f,
1/8f, 1/4f, 1/8f,
1/16f, 1/8f, 1/16f,
};
BufferedImageOp op = new ConvolveOp( new Kernel(3, 3, matrix) );
blurredImage = op.filter(sourceImage, destImage);
关于java - 使用 3x3 高斯核模糊图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20746172/
我是一名优秀的程序员,十分优秀!