Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java.awt.image.buffereImage中应用更柔和的清晰度_Java_Image_Filter_Convolution - Fatal编程技术网

如何在java.awt.image.buffereImage中应用更柔和的清晰度

如何在java.awt.image.buffereImage中应用更柔和的清晰度,java,image,filter,convolution,Java,Image,Filter,Convolution,由于这段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

由于这段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 ];
谢谢你的关注


卷积内核对像素及其周围像素进行操作。给定一个权重矩阵(其中心是像素),它计算像素和周围像素的加权和

对于3x3矩阵,9个内核值是左上角、右上角、左上角、中心(目标像素本身)、右下角、左下角、右下角像素的权重。 原始内核建议将原始像素乘以9,并对周围的所有像素进行减影(-1),从而提高像素的清晰度

您正在寻找的是一个类似的内核,它不会有太多的提升。 中性内核将是
[0,0,0,0,1,0,0,0,0,0]
(目标像素=源像素),因此您可以通过任何您喜欢的因素将内核与中性内核混合

一个半锐内核将是
[0.5,0.5,0.5,4.5,0.5,0.5,0.5,0.5]
(每个内核的一半之和)


请注意,内核是规格化的:权重之和始终为1:如果不同,图像将变得更亮(>1)或更暗(A卷积内核对像素及其周围像素进行操作。给定权重矩阵(其中心为像素),它计算像素和周围像素的加权和

对于3x3矩阵,9个内核值是左上角、右上角、左上角、中心(目标像素本身)、右下角、左下角、右下角像素的权重。 原始内核建议将原始像素乘以9,并对周围的所有像素进行减影(-1),从而提高像素的清晰度

您正在寻找的是一个类似的内核,它不会有太多的提升。 中性内核将是
[0,0,0,0,1,0,0,0,0,0]
(目标像素=源像素),因此您可以通过任何您喜欢的因素将内核与中性内核混合

一个半锐内核将是
[0.5,0.5,0.5,4.5,0.5,0.5,0.5,0.5]
(每个内核的一半之和)


请注意,内核是规格化的:权重之和始终为1:如果不同,图像将变得更亮(>1)或更暗(Java不是JavaScript。Java不是JavaScript。hello Peter根据你的建议,我寻找了一个观察到的折减系数,然后调整结果以获得图像的相同特征(颜色和亮度)。这给出了以下过程:float[]数据=[-1,-1,-1,9,-1,-1]float[]数据=第五,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0 5,0.5,0,0.5,0,0.5,5,5,0,0,0.5,0.5,5,5,0,0.5,5,0,0,0,0,0,0,0,0.5,参考参考参考参考参考参考参考参考参考参考浮动数据数据浮动数据,浮动数据数据,浮动数据,浮动数据数据,浮动数据数据,浮动数据数据数据,浮动数据数据数据,浮动数据数据数据,浮动数据数据,浮动数据数据数据数据,浮动数据数据数据数据,浮动数据数据数据,浮动数据数据数据数据数据我无法理解中心像素9,4,3,2.4,1.7的级数逻辑就是这样,我理解了级数8n+1,非常感谢;)你好,彼得根据你的建议,我寻找了一个观察到的折减系数,然后调整结果,以实现图像的相同特征(颜色和亮度)这就给出了下列级数:float[]数据=[-1,-1,-1,9,-1,-1,-1,-1]float[-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5];float[]数据=[-0.25,-0.25,-0.25,-0.25,-0.25]float[-0.175,-0.175,-0.175,-0.175,-0.175][-0.0875,-0.0875,-0.0875,-0.0875,1.7,-0.0875,-0.0875,-0.0875,-0.0875]我无法理解中心像素9,4,3,2.4,1.7的行进逻辑,就是这样,我理解了8n+1的行进,非常感谢;)