假設hsv
作爲輸入HSV圖像數據,可以使用一些reshaping
非常久遠boolean indexing
所有三個通道設置爲一個通用的三重像這樣 -
newvals = np.array([127,64,100])
mask = (hsv[:,:,0] < 20) | (hsv[:,:,2]> 200)
hsv.reshape(-1,3)[mask.ravel()] = newvals
採樣運行 -
In [13]: hsv
Out[13]:
array([[[155, 179, 207],
[200, 52, 185],
[241, 139, 232],
[188, 149, 117]],
[[145, 169, 116],
[146, 134, 108],
[ 74, 34, 121],
[ 9, 190, 91]],
[[240, 207, 228],
[140, 158, 124],
[179, 154, 212],
[ 79, 166, 131]]], dtype=uint8)
In [14]: newvals = np.array([127,64,100])
...: mask = (hsv[:,:,0] < 20) | (hsv[:,:,2]> 200)
...: hsv.reshape(-1,3)[mask.ravel()] = newvals
In [15]: hsv
Out[15]:
array([[[127, 64, 100],
[200, 52, 185],
[127, 64, 100],
[188, 149, 117]],
[[145, 169, 116],
[146, 134, 108],
[ 74, 34, 121],
[127, 64, 100]],
[[127, 64, 100],
[140, 158, 124],
[127, 64, 100],
[ 79, 166, 131]]], dtype=uint8)
謝謝,我「知道」它一定很簡單。:)如果我想將其他值定義爲值,例如[127 64 100],該怎麼辦? – Harriv