擅长:python、mysql、java
<p>这看起来像是在检查图像是否为灰度。灰度图像使得整个图像的所有RGB通道彼此相等。您可以使用第一个频道,并通过广播查看是否有任何像素不等于任何其他频道:</p>
<pre><code>check = ~np.any(np.any(image[...,0][:,:,None] != image, axis=2))
</code></pre>
<p>请注意,以上假设为<code>uint8</code>或整数像素。强烈建议您不要与浮点比较进行比较,例如在转换为浮点比较时在代码中所做的比较。要使用上述代码,请删除浮点转换。整数比较更安全。我们将首先检查第一个通道中的任何像素是否不等于图像中所有其他通道的任何像素。完成后,我们再包装另一个<code>np.any</code>调用来描述整个图像。<code>check</code>包含这样一个结果-<code>True</code>即您的图像是灰度的,否则<code>False</code>。请注意最终结果的反转,因为我们显式地检查任何不相等的像素,并且当我们使用<code>np.any</code>将其减少到一个答案时,我们必须反转,因为我们检查的是相反的情况。你知道吗</p>