如何在python中将图像转换为16bit zip(deflate)压缩TIF?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在python中将图像转换为16bit zip(deflate)压缩TIF?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1816字,纯文字阅读大概需要3分钟。
内容图文
我们从服务器中的工业传感器获得了50TB的16位无压缩TIF图像,我们希望使用python将它们压缩为无损压缩.使用python因为使用Python来传递我们的数据库更容易.
然而,经过数小时的搜索和文档阅读,我发现甚至没有一个成熟的python库可以将16位TIF转换为zip压缩的tif.最新的PIL无法将压缩的tif,OpenCV硬编码输出文件写入LZW,而不是zip(deflate).并且在smc.freeimage,PythonImageMagick中没有足够的文档,所以我不知道他们是否可以做到.我也发现这个tifffile.py,它的源代码中似乎有一些关于压缩的东西,但是没有示例代码让我了解如何为输出配置压缩选项.
当然我可以使用外部可执行文件,但我不想在这里使用python作为脚本语言.
所以,我真的很感激,如果有人在这里给我一个有效的例子,谢谢.
更新:
cgohlke的代码工作,在这里我提供另一个轻量级的解决方案.
从https://github.com/delmic/pylibtiff这里查看修补过的pythontifflib代码.
来自谷歌代码的原始PythonTiffLib不能很好地处理RGB信息并且它对我的数据不起作用,这个修补版本可以正常工作,但是因为代码非常陈旧,这意味着PythonTiffLib可能无法很好地维护.
使用这样的代码:
from libtiff import TIFF
tif = TIFF.open('Image.tiff', mode='r')
image = tif.read_image()
tifw = TIFF.open('testpylibtiff.tiff', mode='w')
tifw.write_image(image, compression='deflate', write_rgb=True)
解决方法:
PythonMagick在Windows上适用于我:
from PythonMagick import Image, CompressionType
im = Image('tiger-rgb-strip-contig-16.tif')
im.compressType(CompressionType.ZipCompression)
im.write("tiger-rgb-strip-contig-16-zip.tif")
Scikit-image包含FreeImage库的包装器:
import skimage.io._plugins.freeimage_plugin as fi
im = fi.read('tiger-rgb-strip-contig-16.tif')
fi.write(im, 'tiger-rgb-strip-contig-16-zip.tif',
fi.IO_FLAGS.TIFF_ADOBE_DEFLATE)
或者通过tifffile.py,2013.11.03或更高版本:
from tifffile import imread, imsave
im = imread('tiger-rgb-strip-contig-16.tif')
imsave("tiger-rgb-strip-contig-16-zip.tif", im, compress=6)
这些可能不会保留所有其他TIFF标记或属性,但问题中未指定.
内容总结
以上是互联网集市为您收集整理的如何在python中将图像转换为16bit zip(deflate)压缩TIF?全部内容,希望文章能够帮你解决如何在python中将图像转换为16bit zip(deflate)压缩TIF?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。