我有一個圖像我加載到python使用matplotlib.pyplot.imread
其結果作爲numpy
數組包含rgb值的數組。這裏是除了兩個像素的白色啞片段:將RGB白色設置爲透明?
>>> test
array([[[255, 255, 255],
[255, 255, 255]],
[[ 1, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 6, 255]]], dtype=uint8)
我想創建一個屏蔽掉所有的白色像素。我想我可以做一些類似
>>> mask = (test != [255, 255, 255])
的東西,這將使:
array([[[False, False, False],
[False, False, False]],
[[ True, True, True],
[False, False, False]],
[[False, False, False],
[ True, True, True]]], dtype=bool)
我該怎麼辦呢?
或者,我認爲有一個輸入參數爲imshow
這是做到這一點,但文件不清楚如何。看來alpha
會改變整個圖像,並且vmax
接受一個與RGB顏色不兼容的縮放器。
這會生成我想要的遮罩陣列,但是當我嘗試使用'ax.imshow(np.ma.masked_where(out,test))繪製圖像時,它仍然顯示爲白色。 –
@ stvn66是的,在做了一些研究後,我傾向於這個結論,即imshow的這個透明選項與RGB圖像不兼容,如果不是直接使用'np.ma.masked_where'進行掩碼的話。 – Divakar