繁体   English   中英

图像调整大小 UpScale 丢失质量

[英]Image Resize UpScale lost Quality

我想尝试将图像放大 3 倍。

例如,

原图

放大图像

调整大小的图像

我正在使用这个来调整图像大小。

剪下的以下代码可以解决问题,

public static BufferedImage getScaledSampledImage(BufferedImage img,
            int targetWidth, int targetHeight, boolean higherQuality) {

        ResampleOp resampleOp = new ResampleOp(targetWidth, targetHeight);
        resampleOp.setUnsharpenMask(AdvancedResizeOp.UnsharpenMask.Normal);
        BufferedImage rescaledImage = resampleOp.filter(img, null);

        return rescaledImage;
    }

您可以看到调整大小的图像质量较低。 我希望我可以将图像放大到原始图像的至少 3 倍而不会丢失质量。

可以吗? 我是否需要更改现有库?

谢谢

事实是,当您放大图像时,它必须在没有数据的地方创建数据。 (大致说来)。 为此,您必须在现有像素之间进行插值以填充新像素。 您可以通过尝试不同类型的插值获得更好的结果 - 但对于不同类型的图像,最佳方法会有所不同。

由于您的样本图像只是正方形,最近邻插值可能会给您最好的结果。 如果您要放大风景图像或肖像,则需要更聪明的算法。

结果很少会看起来完美,如果可能的话,最好从更大的图像开始!

请查看此处以了解问题。 http://en.wikipedia.org/wiki/Image_scaling#Scaling_methods

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM