图像调整大小UpScale丢失了质量

Mih*_*hir -2 java image image-processing java-2d

我想尝试最多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;
    }
Run Code Online (Sandbox Code Playgroud)

您可以看到调整后的图像质量较低.我希望我可以将图像缩放至少3倍于原始图像,而不会丢失质量.

是Pposible吗?我是否需要更改现有的库?

谢谢

krs*_*eve 5

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

由于您的样本图像只是正方形,因此最近邻插值可能会为您提供最佳结果.如果你要放大一个风景图像或者一个肖像,你需要一个更聪明的算法.

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

看看这里,了解问题.http://en.wikipedia.org/wiki/Image_scaling#Scaling_methods