-2

我想尝试将图像放大 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 倍而不损失质量。

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

谢谢

4

1 回答 1

5

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

由于您的示例图像只是正方形,因此最近邻插值可能会为您提供最佳结果。如果您要放大风景或肖像的图像,则需要更聪明的算法。

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

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

于 2013-08-25T18:44:07.067 回答