[英]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以獲取更多示例和示例代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.