热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

大家好,我正在开发一个程序,它可以确定照片中酵母的平均菌落大小,并且它在我测试过的.bmp图像上运行正常.该程序使用pygame,稍后可能会使用PIL.但是,我们实验室中使用的相机/软件组合只能保存1

大家好,

我正在开发一个程序,它可以确定照片中酵母的平均菌落大小,并且它在我测试过的.bmp图像上运行正常.该程序使用pygame,稍后可能会使用PIL.

但是,我们实验室中使用的相机/软件组合只能保存16位灰度tiff,而pygame似乎无法识别16位tiff,只有8位.我一直在阅读最近几个小时的简单方法,但即使是Python Imaging Library似乎也无法使用16位.tiff,我已经尝试了,我得到了“IOError:无法识别图像文件”.

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

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

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

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

P.S.:有没有人有关于如何让我的Python程序易于非程序员安装的任何提示?有没有办法,例如,以某种方式将它与Python和pygame捆绑在一起,所以它只有一个安装?这可以在Windows和Mac上完成吗?谢谢.

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

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

这是什么意思,我该如何适应它?

解决方法:

如果你在Windows系统上,py2exe是打包应用程序的方法.

关于16位tiff问题:

此示例http://ubuntuforums.org/showthread.php?t=1483265显示了如何使用PIL转换显示.

现在来看未解决的部分问题:在进行图像分析时,您希望在图像处理中尽可能长时间地保持最高动态范围 – 这样就会丢失更少的信息.您可能或可能不知道,PIL为您提供了许多滤镜/变换,可以增强图像的对比度,甚至可以提高光照水平,或执行边缘检测.您可能要考虑的未来方向是显示原始图像(当然缩放到8位)和已经处理以进行边缘检测的缩放图像.

查看http://code.google.com/p/pyimp/wiki/screenshots以获取更多示例和示例代码.


推荐阅读
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
author-avatar
BigUncle
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有