由于这个javascript代码,我知道如何提高图像的清晰度。 但结果对我来说太陡了。 你知道如何应用更柔和的锐度,例如锐度因子吗?
事实上,我想了解这种敏锐度如何通过这个内核运行
ScreenCapture = new Robot().createScreenCapture(new Rectangle(x1, y1, x2, y2));
float[] data = [-1, -1, -1, -1, 9, -1, -1, -1, -1];
Kernel kernel = new Kernel(3, 3, data);
BufferedImageOp convolve = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
bufferedImage = convolve.filter(ScreenCapture, null);
File file = new File(imagetemp);
ImageIO.write(bufferedImage, "jpg", file);
这个内核似乎更软了,但这仍然是:
float[] data= [0.0f, -1.0f, 0.0f, -1.0f, 5.0f, -1.0f, 0.0f, -1.0f, 0.0f ];
感谢您的关注
答案 0 :(得分:3)
卷积内核对像素及其周围像素进行操作。给定权重矩阵(其中心是像素),它计算像素和周围像素的加权和。
使用3x3矩阵,9个内核值是左上,上,右上,左,中(目标像素本身),右,左下,下,右下的权重像素。 原始内核表明原始像素乘以9并且所有周围像素都减去(-1),从而提高了像素的清晰度。
中性内核将是[0,0,0,0,1,0,0,0,0]
(目标像素=源像素),因此您可以通过您喜欢的任何因素将内核与中性内核混合。
半锐的内核将是[0.5,0.5,0.5,0.5,4.5,0.5,0.5,0.5,0.5]
(每个内核的两半之和)。
请注意,内核规范化:权重之和始终为1:如果不同,则图像会变亮(> 1)或变暗(<1)。< / p>