超分辨率成像的基本思想是能够放大图像并保持视觉质量,供人们观看或用于计算机图像分析。
由于衍射极限,超分辨率很重要,光学硬件可以通过光的衍射达到分辨率的限制。通过算法提高分辨率的能力意味着您可以破坏该限制以提高分辨率。
因此,超分辨率缩放非常重要, Java成像SDK JDeli 增加了对超级分辨率的 支持
所以让我们进行一些实验。让我们拍摄一些斑马的图像,并通过JDeli的超分辨率缩放和Java的双三次缩放来运行它。
对于JDeli超级分辨率,我使用以下代码:
BufferedImage image = JDeli.read(<b>new</b> File(<font>"Zebras.png"</font><font>)); image = SuperResolution.scale2x(image); JDeli.write(image, JDeli.OutputFormat.PNG, <b>new</b> File(</font><font>"Zebras-JDeli-Scaled.png"</font><font>)); </font>
对于Java bicubic,我使用以下代码:
BufferedImage src = JDeli.read(<b>new</b> File(<font>"Zebras.png"</font><font>)); <b>final</b> <b>int</b> w = src.getWidth(); <b>final</b> <b>int</b> h = src.getHeight(); BufferedImage dst = <b>new</b> BufferedImage((w * 2),(h * 2), BufferedImage.TYPE_INT_ARGB); <b>final</b> AffineTransform at = AffineTransform.getScaleInstance(2.0, 2.0); <b>final</b> AffineTransformOp ato = <b>new</b> AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC); dst = ato.filter(src, dst); JDeli.write(dst, JDeli.OutputFormat.PNG, <b>new</b> File(</font><font>"Zebras-Java-Scaled.png"</font><font>)); </font>
最终结果并排比较:
JDeli超分辨率
[img]https:<font><i>//blog.idrsolutions.com/wp-content/uploads/2018/12/Zebras-JDeli-Scaled.png[/img]</i></font><font> </font>
Java bicubic:
正如您所看到的,超分辨率可以保持初始图像的质量,而双三次最终会使图像更加模糊。在IDRsolutions,我们对您使用JDeli获得的结果非常满意。你怎么看?