簡體   English   中英

Python:在PIL和/或pygame中操作16位.tiff圖像:以某種方式轉換為8位?

[英]Python: Manipulating a 16-bit .tiff image in PIL &/or pygame: convert to 8-bit somehow?

在此輸入圖像描述 大家好,

我正在開發一個程序,它可以確定照片中酵母的平均菌落大小,並且它在我測試過的.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-位范圍。

我非常感謝你的幫助,並為我缺乏知識而道歉。

PS:有沒有人有關於如何讓我的Python程序易於非程序員安裝的任何提示? 有沒有辦法,例如,以某種方式將它與Python和pygame捆綁在一起,所以它只有一個安裝? 這可以在Windows和Mac上完成嗎? 謝謝。

編輯:我試圖在GIMP中打開它,並得到3個錯誤:

1)字段“DateTime”的計數不正確(27,期望20); 標簽修剪2)抱歉,無法處理12位樣本的圖像3)不支持的布局,沒有RGBA加載器

這是什么意思,我該如何適應它?

我會看看pylibtiff ,它有一個純粹的python tiff閱讀器。

對於捆綁,你最好的選擇可能是py2exe和py2app。

如果你在Windows系統上,py2exe是打包應用程序的方法。

關於16位tiff問題:

此示例http://ubuntuforums.org/showthread.php?t=1483265顯示了如何使用PIL轉換顯示。

現在來看未解決的部分問題:在進行圖像分析時,您希望在圖像處理中盡可能長時間地保持最高動態范圍 - 這樣就會丟失更少的信息。 您可能或可能不知道,PIL為您提供了許多濾鏡/變換,可以增強圖像的對比度,甚至可以提高光照水平,或執行邊緣檢測。 您可能要考慮的未來方向是顯示原始圖像(當然縮放到8位)和已經處理以進行邊緣檢測的縮放圖像。

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

這實際上是一個2部分的問題:

1)Python的16位圖像數據修改 - 我通常使用GDAL + Numpy。 這可能對您的要求有點過分,您可以使用PIL + Numpy。

2)發布工程Python應用程序可能會變得混亂。 根據您的應用程序的復雜程度,您可以使用py2debpy2apppy2exe 學習distutils也會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM