擅长:python、mysql、java
<p>问题出在<code>target('float32')</code>
目标是努比·恩达雷,并在其后面加上<code>()</code>,这样就可以像函数一样调用它了</p>
<p>对于opencv图像,<strong>float32</strong>的范围是<strong>0.0-1.0</strong>,而uint8</strong>则在<strong>0-255的范围内</p>
<p>我可以看到您已经用<code>target = np.ones([ht, wt]) * 255</code>将目标转换为0-255范围,所以您应该使用'uint8'</p>
<p>现在来解决最初的问题。将numpy数组更改为其他数据类型</p>
<p><code>target = target.astype('uint8')</code>或</p>
<p><code>target = target.astype('float32') / 255.</code>(除以255返回0-1.0范围)</p>
<p>或者您可以使用它而不存储新类型<code>cv2.imshow('Greyscale_Stretched', target.astype('uint8'))</code></p>