簡體   English   中英

從圖像中提取單個幀

[英]Extracting individual frames from an image

我目前是python的新手,我想從圖像中分別提取R,G和B幀。

例如,存儲我的圖像的變量是img

我想知道的

我如何使Rimg = img (:,:,1) Gimg = img (:,:,2) Bimg = img (:,:,3)當然,這些是MATlab偽代碼,Rimg,Gimg和Bimg只是變量。

脾氣暴躁的風格:

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

OpenCV樣式:

B,G,R = cv2.split(img)

其他答案是正確的,但這是一種常見的操作,單行代碼可以是慣用的:

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

transpose運算符圍繞更改軸,以使第一個軸成為通道軸。 然后,您可以使用標准的Python多重分配來分配給rgb

假設您使用Python中的許多圖像庫( OpenCVMahotasscikits.imagePIL )中的任何一個將數據作為NumPy ndarray加載,那么基本上可以使用與Matlab完全相同的語法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM