我目前正在从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*
支持的一部分。
我的问题是:如何使用PySide将QImage转换为Numpy.Array
。
编辑:
Version Info
> Windows 7 (64Bit)
> Python 2.7
> PySide Version 1.2.1
> Qt Version 4.8.5
bits
方法。这也是PyQt的一部分吗?使用constBits
怎么样? - Henry Gomersall