我正在从Pyqt切换到Pyside。
使用pyqt,我使用我在SO上找到的代码将QImage
转换为Numpy.Array
:
def convertQImageToMat(incomingImage):
''' Converts a QImage into an opencv MAT format '''
incomingImage = incomingImage.convertToFormat(4)
width = incomingImage.width()
height = incomingImage.height()
ptr = incomingImage.bits()
ptr.setsize(incomingImage.byteCount())
arr = np.array(ptr).reshape(height, width, 4) # Copies the data
return arr
但是,
ptr.setsize(incomingImage.byteCount())
不适用于PySide,因为这是Pyqt的void*
support的一部分。我的问题是:如何使用pyside将qimage转换为
Numpy.Array
。编辑:
Version Info
> Windows 7 (64Bit)
> Python 2.7
> PySide Version 1.2.1
> Qt Version 4.8.5
最佳答案
Pyside似乎没有提供bits
方法。使用constBits获取数组指针如何?