擅长:python、mysql、java
<p>他们所表示的是数据是必需的参数,而不是关键字被称为data,下面的方法将numpy/opencv图像转换为QImage:</p>
<pre><code>from PyQt5.QtGui import QImage, qRgb
import numpy as np
import cv2
gray_color_table = [qRgb(i, i, i) for i in range(256)]
def NumpyToQImage(im):
qim = QImage()
if im is None:
return qim
if im.dtype == np.uint8:
if len(im.shape) == 2:
qim = QImage(im.data, im.shape[1], im.shape[0], im.strides[0], QImage.Format_Indexed8)
qim.setColorTable(gray_color_table)
elif len(im.shape) == 3:
if im.shape[2] == 3:
qim = QImage(im.data, im.shape[1], im.shape[0], im.strides[0], QImage.Format_RGB888)
elif im.shape[2] == 4:
qim = QImage(im.data, im.shape[1], im.shape[0], im.strides[0], QImage.Format_ARGB32)
return qim
img = cv2.imread('/path/of/image')
qimg = NumpyToQImage(img)
assert(not qimg.isNull())
</code></pre>
<p>或者您可以使用<a href="https://pypi.org/project/qimage2ndarray/" rel="nofollow noreferrer">qimage2ndarray</a>库</p>
<p>当使用索引裁剪图像时,只修改<code>shape</code>,而不是{<cd2>},解决方案是制作一个副本</p>
^{pr2}$