首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:在PIL和/或pygame中操作16位.tiff图像:以某种方式转换为8位?

Python:在PIL和/或pygame中操作16位.tiff图像:以某种方式转换为8位?
EN

Stack Overflow用户
提问于 2011-04-24 12:52:43
回答 3查看 6.7K关注 0票数 4

大家好,

我正在开发一个程序,它可以从照片中确定酵母的平均菌落大小,它可以很好地处理我测试过的.bmp图像。该程序使用pygame,并可能在以后使用PIL。

然而,我们在实验室中使用的相机/软件组合只能保存16位灰度tiff,而pygame似乎无法识别16位tiff,只能识别8位。我在过去的几个小时里一直在阅读解决这个问题的简单方法,但即使是Python image Library似乎也不能与16位的.tiff一起工作,我已经尝试过了,我得到了"IOError:无法识别图像文件“。

代码语言:javascript
运行
复制
import Image

img = Image.open("01 WT mm.tif")

我的最终目标是让这个程序对用户友好且易于安装,所以我尽量避免添加额外的模块或要求人们安装ImageMagick或其他东西。

有没有人知道使用免费软件或纯python解决这个问题的简单方法?我对图像了解不多:位深度操作超出了我的范围。但我相当确定我不需要所有的16位,而且可能只有8位实际上有真实的数据。事实上,我曾经使用ImageMagick来尝试转换它们,这导致了一个全白的图像:我后来读到我应该使用命令"-auto-levels“,因为数据实际上并不包含16位范围。

我非常感谢你的帮助,并为我缺乏知识而道歉。

附言:对于如何让非程序员轻松安装我的Python程序,有人有什么建议吗?例如,有没有办法将它与Python和pygame捆绑在一起,这样只需安装一次?Windows和Mac都能做到这一点吗?谢谢。

编辑:我尝试在GIMP中打开它,得到3个错误:

1)字段"DateTime“的计数不正确(27,应为20);标记已修剪2)抱歉,无法处理12位样本的图像3)不支持的布局,没有RGBA加载器

这意味着什么?我如何适应它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-24 22:39:39

如果你在windows系统上,py2exe是打包你的应用程序的好方法。

关于16位tiff问题:

这个示例http://ubuntuforums.org/showthread.php?t=1483265展示了如何使用PIL转换为显示。

现在是未问部分的问题:在进行图像分析时,您希望在图像操作中尽可能长时间地保持最高动态范围-这样可以减少丢失的信息。您可能知道,也可能不知道,PIL为您提供了许多滤镜/变换,使您可以增强图像的对比度,甚至光线水平,或执行边缘检测。未来你可能想要考虑的一个方向是将原始图像(当然缩放到8位)与经过边缘检测处理的缩放图像一起显示。

有关更多示例和样例代码,请查看http://code.google.com/p/pyimp/wiki/screenshots

票数 2
EN

Stack Overflow用户

发布于 2011-04-24 20:33:35

我会看看pylibtiff,它有一个纯python tiff阅读器。

对于捆绑,您最好的选择可能是py2exe和py2app。

票数 2
EN

Stack Overflow用户

发布于 2011-04-24 20:40:54

这实际上是一个两部分的问题:

1) Python -I的16位图像数据处理通常使用GDAL + Numpy。这可能对你的需求来说有点太多了,你可以使用PIL + Numpy。

2)发布工程Python应用程序可能会变得混乱。根据你的应用程序的复杂程度,你可以使用py2debpy2apppy2exe。学习distutils也会有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5768714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档