色付きの画像を表すnumpy 2dマトリックスがあります。この行列には負の数と浮動小数点数がありますが、もちろんimshow(my_matrix)を使用して画像を表示できます。
私はこのカラー画像にヒストグラムイコライゼーションを実行する必要があるので、ここでcv2を使用してstackoverflowでコードを見つけました( OpenCV Python equalizeHistカラー画像 )が、問題はありません2Dマトリックスを、RGB用に3つのチャンネルを使用するcvマトリックスに変換します。
私は再び検索していましたが、私が見つけたのは通常の3D numpy行列をcv2行列に変換することですので、numpy 2d行列を3チャンネルのcv2行列に変換するにはどうすればよいですか?
numpy.ndarrayはcv2のベースであるため、通常のようにコードを書くだけです。
img_np = np.ones([100,100])
img_cv = cv2.resize(img_np,(200,200))
あなたが試すことができます
既存のnumpy配列を、その形状を変更して3番目の軸を追加するよりも、自身のコピーの上下に重ねることをお勧めします。このコードを確認してください:
import numpy as np
import matplotlib.pyplot as plt
a = np.random.Rand(90, 100) # Replace this line with your 90x100 numpy array.
a = np.expand_dims(a, axis = 2)
a = np.concatenate((a, a, a), axis = 2)
print(a.shape)
# (90, 100, 3)
plt.imshow(a)
plt.show()
灰色の画像が表示されます。