[英]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.