1

に渡すことができる" "サブクラスを作成しarray_likeQImagenumpy.array()たいと思います。PIL代わりに使用することは避けたいです。これの全体的なポイントは、への依存を回避することPILです。QImageその上、との間で絶えず変換することPIL Imageは私のプログラムにとって非現実的です。

ドキュメントがわかりにくいと思いますが、それを読んだ後でも、配列インターフェイスをエミュレートする方法について混乱しています。numpyのドキュメントに記載されているように、 ""オブジェクトとして認定するには、5つのキーを持つ辞書である属性array_likeが必要です。__array_interface__ただし、これまでタイプ、バッファ、およびメモリを扱ったことはありません。誰かがこの問題を解決する方法を説明できれば、それは大いにありがたいです。

Python3.3とPySide1.1.2を使用しています。返信してくれたすべての人に感謝します!

4

1 に答える 1

3

QImage.bits()およびから返されたバッファオブジェクトを使用する方が簡単np.frombuffer()です。

def qimage2array(q_image):
    width = q_image.width()
    height = q_image.height()
    arr = np.frombuffer(q_image.bits(), dtype=np.uint8).reshape([height, width, -1])
    return arr
于 2013-01-27T14:55:16.533 に答える