[英]How to extract green channel from RGB image in Python using Scikit-Image library?
我是Python中用於圖像處理的scikit-image( skimage
)庫的skimage
(幾分鍾前開始!)。 我用imread
讀取的圖像文件numpy.ndarray
。 該陣列是3維的,其中第三維的尺寸是3(即,對於圖像的紅色,綠色和藍色分量中的每一個,一個)。
rgb_image = imread("input_rgb_image.jpg")
rgb_image.shape # gives (1411L, 1411L, 3L)
我試圖將綠色通道提取為:
green_image = rgb_image[:,:,1]
但是當我將這個圖像矩陣寫入輸出文件時:
imsave("green_output_image.jpg",green_image)
我得到的圖像看起來並不真實!
你提取的只是一個通道,它會顯示每個像素有多少綠色。 這最終將被視為灰度圖像,其中較暗的像素表示在那些點處沒有太多“綠色”,較亮的像素表示在這些點處存在大量的“綠色”。
如果我正在解釋你所說的正確,你希望可視化每種顏色的“綠色”。 在這種情況下,將紅色和藍色通道都設置為零並保持綠色通道不變。
所以:
green_image = rgb_image.copy() # Make a copy
green_image[:,:,0] = 0
green_image[:,:,2] = 0
請注意,我已經制作了原始圖像的副本並更改了頻道而不是修改原始圖像以備不時之需。 但是,如果您只想提取綠色通道並將其顯示為灰度圖像,如上所述,那么使用green_image
變量的設置執行上面green_image
操作就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.