Java图像处理:基于OpenCV与JVM》 ——1.7 保存图像到文件

网友投稿 803 2022-05-30

1.7 保存图像到文件

问题定义

使用OpenCV保存图像。

《Java图像处理:基于OpenCV与JVM》 ——1.7 保存图像到文件

解决方法

OpenCV有一个同imread函数相对应的用来写入文件的函数,函数名是imwrite,也在Imgcodecs类中定义。通常情况下,该函数仅使用本地文件系统里指向图像存储位置的文件路径作为参数,但它也可以使用一些参数来修改图像存储的方式。

工作原理

imwrite函数同imread函数工作原理相似,不同之处是它除了路径,还需要一个Mat对象来存储图像。

第一个代码片段简单地实现将以彩色形式加载的猫咪图像存储到文件中。

图1-11展示了输出的.jpg图片的内容。

图1-11 磁盘上的JPEG格式图像

现在,当保存Mat对象时,你也可以仅通过使用一个不同的扩展名来改变存储格式。例如,想要保存为便携式网络图形(Portable Network Graphic,PNG)格式,仅需调用imwrite函数时,使用一个不同的扩展名即可。

不需要进行图像编码和令人发狂的字节操作,你输出的文件确实是PNG格式。

可以向imwrite函数传递参数,最常见的参数是压缩参数。

例如,按照官方文档:

对于JPEG,可以使用CV_IMWRITE_JPEG_QUALITY参数,参数值范围为0~100(值越大图像质量越高)。默认值是95。

对于PNG,可以使用0~9作为压缩程度的参数值,值越大表示图像越小且压缩时间越长。默认值是3。

可以通过使用另一个叫作MatOfInt的OpenCV对象来实现使用压缩参数压缩输出文件,MatOfInt是一个整型矩阵,或者是一个更简单的形式,即数组。

上段代码实现PNG图片压缩。同时,通过查看文件大小,实际上你可以发现这个PNG文件大小至少减少了10%。

Java Java OpenCV

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《React+Redux前端开发实战》—1.5 Hello World实战训练
下一篇:java对接国内1200家快递公司进行快递寄件示例代码
相关文章