擅长:python、mysql、java
<p>所以,尽管你没有在问题中说出来,我还是假设你的图像格式是16位灰度。在</p>
<p>看一下这里的格式类型:<a href="https://doc.qt.io/Qt-5/qimage.html#Format-enum" rel="nofollow noreferrer">https://doc.qt.io/Qt-5/qimage.html#Format-enum</a>这不是一种受支持的格式,因此您必须将其更改为可以显示的格式。在</p>
<p>RGB64格式允许每种颜色16位,这对于您所拥有的值足够分辨率:</p>
<pre class="lang-py prettyprint-override"><code>from PySide import QtGui, QPixmap
def array_to_pixmap(arr):
"""Returns a QPixmap from a 16 bit greyscale image `arr`."""
# create a local variable arr which is 64 bit so we can left shift it
# without overflowing the 16 bit original array
arr = arr.astype(np.int64)
# pack the 16 bit values of arr into the red, green, and blue channels
rgb = arr << 48 | arr << 32 | arr << 16 | 0xffff
im = QtGui.QImage(rgb, rgb.shape[0], rgb.shape[1], QtGui.QImage.Format_RGBA64)
return QtGui.QPixmap.fromImage(im)
</code></pre>
<p>我还没有测试过,但它应该能给你足够的信息来继续。在</p>