2

私は現在Pythonを初めて使用しており、画像からR、G、およびBフレームを個別に抽出したいと考えています。

たとえば、私の画像を格納する変数は img です

知りたいこと;

Ofcource の作成方法Rimg = img (:,:,1) Gimg = img (:,:,2) Bimg = img (:,:,3) 。これらは MATlab 疑似コードで、Rimg、Gimg、Bimg は単なる変数です。

4

3 に答える 3

2

他の答えは正しいですが、これはワンライナーが慣用的になることができる十分に一般的な操作です:

# Let `im` be a numpy array
r,g,b = im.transpose((2,0,1))

オペレータはtranspose、最初の軸がチャネル軸になるように軸を変更します。次に、標準の Python の複数代入を使用して、、、rおよびgに代入できますb

于 2013-05-09T14:16:55.763 に答える
2

派手なスタイル:

Bimg = img[:,:,0]
Gimg = img[:,:,1]
Rimg = img[:,:,2]

OpenCV スタイル :

B,G,R = cv2.split(img)
于 2013-05-08T19:31:00.123 に答える
0

Python の多くの画像ライブラリ ( OpenCVMahotasscikits.imagePIL )のいずれかを使用してデータをNumPy としてロードすると仮定すると、基本的に Matlab とまったく同じ構文が機能します。ndarray

Rimg = img[:,:,0] 
Gimg = img[:,:,1] 
Bimg = img[:,:,2]
于 2013-05-08T19:32:03.210 に答える