16bit画像のグレースケール画像を作りたい。最終的にはヒストグラム作成を行いたい。
python
1import numpy as np 2import matplotlib.pyplot as plt 3import cv2 4import glob 5 6path = glob.glob(r'C:\CT*.tif') 7 8images = [] 9for n,i in enumerate(path): 10 img = cv2.imread(i,-1) 11 images.append(img[1000:3000,1000:3000]) 12 13test = images[0] 14print(test.shape) 15print(test.dtype) 16print(test)
python
1出力結果 2(2000, 2000) 3uint16 4[[21210 20949 20073 ... 17912 18097 18876] 5 [20721 21023 20437 ... 18082 17922 18238] 6 [20253 20849 20689 ... 18311 18165 18495] 7 ... 8 [16441 16711 17090 ... 18463 18633 19380] 9 [16710 17124 17652 ... 18436 18931 19823] 10 [17014 17566 18288 ... 18299 18997 20004]]
16bit画像の読み込みまではできたのですが、グレースケール画像の作り方が分かりません。
最終的にヒストグラムを作りたいと考えています。
8bit画像でのやり方はネットに載っていたのですが、16bitだとうまくいきません。
> 16bit画像
って何ですか?
・B,G,R の各chが16bit(16bit 3ch)
・1pixel の色 R,G,B が16bitで表されているようなやつ(Rが5bit Gが6bit Bが5bit みたいなの)
・カラー画像ではなくて何らかの値が16bitなもの(16bit 1ch : 例えば深度データみたいな)
・その他の何か
あと,結果の「グレースケール画像」というのは 16bit 1ch なデータということですか?
画像処理初心者で詳しくは分からないですが、CT画像のデータなのでおそらく3番目の「カラー画像ではなくて何らかの値が16bitなもの(16bit 1ch : 例えば深度データみたいな)」だと思います。

回答1件
あなたの回答
tips
プレビュー