私は現在Pythonを初めて使用しており、画像からR、G、およびBフレームを個別に抽出したいと考えています。
たとえば、私の画像を格納する変数は img です
知りたいこと;
Ofcource の作成方法Rimg = img (:,:,1)
Gimg = img (:,:,2)
Bimg = img (:,:,3)
。これらは MATlab 疑似コードで、Rimg、Gimg、Bimg は単なる変数です。
私は現在Pythonを初めて使用しており、画像からR、G、およびBフレームを個別に抽出したいと考えています。
たとえば、私の画像を格納する変数は img です
知りたいこと;
Ofcource の作成方法Rimg = img (:,:,1)
Gimg = img (:,:,2)
Bimg = img (:,:,3)
。これらは MATlab 疑似コードで、Rimg、Gimg、Bimg は単なる変数です。
他の答えは正しいですが、これはワンライナーが慣用的になることができる十分に一般的な操作です:
# Let `im` be a numpy array
r,g,b = im.transpose((2,0,1))
オペレータはtranspose
、最初の軸がチャネル軸になるように軸を変更します。次に、標準の Python の複数代入を使用して、、、r
およびg
に代入できますb
。
派手なスタイル:
Bimg = img[:,:,0]
Gimg = img[:,:,1]
Rimg = img[:,:,2]
OpenCV スタイル :
B,G,R = cv2.split(img)
Python の多くの画像ライブラリ ( OpenCV、Mahotas、scikits.image、PIL )のいずれかを使用してデータをNumPy としてロードすると仮定すると、基本的に Matlab とまったく同じ構文が機能します。ndarray
Rimg = img[:,:,0]
Gimg = img[:,:,1]
Bimg = img[:,:,2]