pythonがtifピクチャを読み出す時、その16 bitの符号化フォーマットの例を保持します。


tifピクチャの符号化フォーマットは一般的に16 bitです。python-opencvを使ってtifファイルを読み込む時に、その符号化フォーマットを保持するためには、以下の方式が必要です。

import numpy as np
import cv2

img = cv2.imread('demo.tif', -1)
print(img.dtype)
出力結果は:uint 16
opencvにおけるimread関数の最後のパラメータについて以下のように説明します。
パラメータ>0の場合、opencvで読み取られたのは3チャンネルのカラーマップ(グレースケールマップもデフォルトでカラーマップに変換されます)で、符号化フォーマットは8 bitに変換されます。
パラメータ=0の場合、opencvで読み取られたのは1チャンネルの階調図で、符号化フォーマットは8 bitに変換されます。
パラメータ<0の場合、opencvは原図のフォーマットで読み、符号化フォーマットは16 bitに戻ります。
もう一つのtif画像を読み取る方法は、tifffileライブラリを使って読み取ることであり、pythonでは先にpipでインストールすることができます。

pip install tifffile
次に、以下のコードでtif画像を読み込むことができます。

import tifffile as tiff
import numpy as np

a = tiff.imread('demo.tif')
print(a.shape)

以上のpythonでtif画像を読み込む時、16 bitのコードフォーマットを保持しています。例は小編集で皆さんに共有している内容です。参考にしてもらいたいです。どうぞよろしくお願いします。