【问题标题】:Image Resampling Bicubic Interpolation Java图像重采样双三次插值 Java
【发布时间】:2011-12-30 04:52:54
【问题描述】:

我已经调整了图像的大小,但它的质量很低。我听说过双三次插值,但我无法获得任何实现代码。这是我的代码:

private static BufferedImage resize(BufferedImage image, int width, int height) 
{ 
    int w = image.getWidth(), h = image.getHeight();
    int type = image.getType() == 0? BufferedImage.TYPE_INT_ARGB : image.getType();
    BufferedImage resizedImage = new BufferedImage(width, height, type);
    Graphics2D g = resizedImage.createGraphics();
    g.setComposite(AlphaComposite.Src);
    g.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BICUBIC);

    //g.drawImage(image, 0, 0, width, height, null);
    g.scale((double)width/w,(double)height/h);
    g.drawRenderedImage(image, null);
    g.dispose();
    return resizedImage; 
}   

我想在上采样和下采样后得到最好的质量。

【问题讨论】:

    标签: interpolation bicubic


    【解决方案1】:

    只有当您需要通过一些非整数比例因子调整大小时,才需要双三次插值和其他插值方案。您可能缺少的是您需要在下采样(缩小时)之前过滤您的图像或在上采样(在扩展时)之后过滤以避免混叠伪影,这是一个完全不同的问题。这适用于整数和非整数比例因子。

    【讨论】:

    • 放大整数倍时使用什么算法?我看不出插值是多么不必要。
    • @erickson:在这种情况下,井过滤和插值在某种程度上是可以互换的术语 - 例如。通过上采样后的低通滤波,您可以有效地插入插入的零样本。
    • 好的,有道理。谢谢!
    猜你喜欢
    • 2014-02-28
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多