我正在嘗試使用Image模塊創建10 位/顏色(位深度)的影像。我寫了以下代碼段,但結果是 8 位/顏色:
from PIL import Image
im = Image.new("RGBA", (256, 256))
pix = im.load()
for y in range(256):
for x in range(256):
pix[x, y] = (1023, 1023, 1023, 255)
im.show()
im.save("10bit.jpg")
雖然 image 成功寫入了新檔案,但它仍然編碼為 8 位通道:
$ exiftool 10bit.png
Bit Depth : 8
$ file 10bit.png
10bit.png: PNG image data, 256 x 256, 8-bit/color RGBA, non-interlaced
我的目標是撰寫深色(40 位)影像:
深色由十億種或更多顏色組成。 [15] 230 是 1,073,741,824。通常這是紅、綠和藍各 10 位 (10 bpc)。如果添加相同大小的 alpha 通道,則每個像素占用 40 位。
我在這里缺少什么?還有另一種方法可以創建 10 位 alpha 通道影像嗎?(opencv等)
uj5u.com熱心網友回復:
你不能用PIL/Pillow. 此處描述了可用模式,并且沒有每像素超過 8 位的 RGB 模式。
我建議您使用NumpywithHxWx3通道np.uint16來創建影像并使用scikit-image, 或OpenCV或wand處理它們,如下所示:
import numpy as np
# Crete empire black image
image = np.zeros((H,W,3), np.uint16)
你沒有明確說明你想用什么格式來寫結果。如果你澄清了這一點,也許我(或其他人)可以推薦一個 Python 庫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/344528.html
