USB 遠地点カメラから読み取られる文字列があります。これは 12 ビット グレースケール イメージで、それぞれ 12 ビットが 16 ビット ワードの下位 12 ビットを占めています。最下位 4 ビットを無視して、この文字列から 8 ビットの png を作成したいと考えています。
PILを使用して、最上位4ビットが常にゼロである16ビット画像に変換できます
import Image
#imageStr is the image string
#imageSize is the image size
img=Image.fromstring("I", imageSize, imageStr, "raw", "I;16", 0,1)
img.save("MyImage.png", "PNG")
とにかく、文字列を完全にアンパックして演算を行い、新しい文字列を作成することなく、8 ビット イメージを作成するために同様のことを行うことはできますか?
編集:画像の変換に関するWumpsのコメントは私にアイデアを与えてくれました。
img = img.point(lambda i: i * 16, "L") #shifts by 4 bits and converts to 8-bit image.
ありがとう