擅长:python、mysql、java
<p>将<code>rgbL</code>和<code>img</code>转换为numpy数组。一种不用循环的方法:</p>
<pre><code>sh = img.shape
img = img.reshape(-1, 3)
img[np.where(((rgbL[:,None,:]-img)==0).all(axis=2))[1]]=np.array([255,0,0])
img = img.reshape(sh)
</code></pre>
<p>这将获取图像与<code>rgbL</code>每行的差异,并检查要使用<code>np.where</code>替换的RGB中的<code>all</code>零差异</p>
<p>样本<code>img</code>和输出:</p>
<pre><code>img:
[[ 20 45 40]
[ 30 45 60]
[ 0 1 2]
[ 70 50 100]
[ 4 5 6]]
rgbL:
[[ 20 45 40]
[ 30 45 60]
[ 70 50 100]]
Output:
[[255 0 0]
[255 0 0]
[ 0 1 2]
[255 0 0]
[ 4 5 6]]
</code></pre>
<p><em><strong>更新</strong></em>:每个OP关于将字符串dict键转换为numpy数组的评论:</p>
<pre><code>rgbL = np.array([list(map(int,[s.strip() for s in key.strip('[').strip(']').strip(' ').split(' ') if s.strip()])) for key in rgb_dict.keys()])
</code></pre>