簡體   English   中英

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

[英]how to apply a softer sharpness in java.awt.image.BufferedImage

借助此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 ];

感謝您的關注

原始為pdf打印

屏幕截圖銳化結果

卷積核對像素及其周圍像素進行操作。 給定一個權重矩陣(其中心是像素),它將計算像素和周圍像素的加權和。

對於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)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM