使用JDeli超分辨率成像来改善缩放比例


超分辨率成像的基本思想是能够放大图像并保持视觉质量,供人们观看或用于计算机图像分析。
由于衍射极限,超分辨率很重要,光学硬件可以通过光的衍射达到分辨率的限制。通过算法提高分辨率的能力意味着您可以破坏该限制以提高分辨率。
因此,超分辨率缩放非常重要,Java成像SDK JDeli增加了对超级分辨率的支持
所以让我们进行一些实验。让我们拍摄一些斑马的图像,并通过JDeli的超分辨率缩放和Java的双三次缩放来运行它。

对于JDeli超级分辨率,我使用以下代码:

BufferedImage image = JDeli.read(new File("Zebras.png"));
image = SuperResolution.scale2x(image);
JDeli.write(image, JDeli.OutputFormat.PNG, new File(
"Zebras-JDeli-Scaled.png"));

对于Java bicubic,我使用以下代码:

BufferedImage src = JDeli.read(new File("Zebras.png"));
final int w = src.getWidth();
final int h = src.getHeight();
BufferedImage dst = new BufferedImage((w * 2),(h * 2), BufferedImage.TYPE_INT_ARGB);
final AffineTransform at = AffineTransform.getScaleInstance(2.0, 2.0);
final AffineTransformOp ato = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC);
dst = ato.filter(src, dst);
JDeli.write(dst, JDeli.OutputFormat.PNG, new File(
"Zebras-Java-Scaled.png"));


最终结果并排比较:
JDeli超分辨率

[img]https://blog.idrsolutions.com/wp-content/uploads/2018/12/Zebras-JDeli-Scaled.png[/img]

Java bicubic:

正如您所看到的,超分辨率可以保持初始图像的质量,而双三次最终会使图像更加模糊。在IDRsolutions,我们对您使用JDeli获得的结果非常满意。你怎么看?