2
所以這是一個讓我暫時陷入困境的問題。這也可能是更簡單的比我的看法,但可以說我有一個二維數組,包含灰度值,我轉換成RGB:使Python中的RGB數組中的'G'列中的灰度數組中的非零元素等於1
import numpy as np
import matplotlib.pyplot as plt
grayscale = [[0, 0, 146, 150], [162, 0, 0, 60]]
gray = np.array(grayscale)
def to_rgb1(gray):
gray.resize((gray.shape[0], gray.shape[1], 1))
return np.repeat(gray.astype(np.uint8), 3, 2)
cmap = plt.get_cmap('jet')
rgba_img = cmap(gray)
rgb_img = np.delete(rgba_img, 3, 2)
print rgb_img
這段代碼的輸出是:
[[[ 0. 0. 0.5 ]
[ 0. 0. 0.5 ]
[ 0.71790006 1. 0.24984187]
[ 0.76850095 1. 0.19924099]]
[[ 0.92030361 1. 0.04743833]
[ 0. 0. 0.5 ]
[ 0. 0. 0.5 ]
[ 0. 0.44117647 1. ]]]
現在讓我們說我不關心R
和B
列。我知道如何讓這些零,但我想要做的是使該是nonzero
灰度數組中等於1
在G
列,以便輸出RGB
陣列的任何元素,因此輸出看起來是這樣的:
[[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 1. 0.]
[ 0. 1. 0.]]
[[ 0. 1. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 1. 0.]]]
最簡單的方法是什麼?