[PyQt] ANN: qimage2ndarray - converting between QImages and
numpy.ndarrays
Hans Meine
meine at informatik.uni-hamburg.de
Wed Dec 2 17:42:37 GMT 2009
Hi,
I have just uploaded a first release of qimage2ndarray, a tiny python
extension for quickly converting between QImages and numpy.ndarrays
(in both directions). These are very common tasks when programming e.g.
scientific visualizations in Python using PyQt4 as the GUI library.
Similar code was found in Qwt and floating around on mailing lists,
but qimage2ndarray has the following unique feature set:
* Supports conversion of scalar and RGB data, with arbitrary dtypes
and memory layout, with and without alpha channels, into QImages
(e.g. for display or saving using Qt).
* Using a tiny C++ extension, qimage2ndarray makes it possible to
create ndarrays that are *views* into a given QImage's memory.
This allows for very efficient data handling and makes it possible
to modify Qt image data in-place (e.g. for brightness/gamma or alpha
mask modifications).
* qimage2ndarray is stable and unit-tested:
* proper reference counting even with views (ndarray.base points to
the underlying QImage)
* handles non-standard widths and respects QImage's 32-bit row
alignment
* Masked arrays are also supported and are converted into QImages
with transparent pixels.
* Supports value scaling / normalization to 0..255 for convenient
display of arbitrary NumPy arrays.
The extension is open source, BSD-licensed, and available via PyPI or here:
http://kogs-www.informatik.uni-hamburg.de/~meine/software/qimage2ndarray/
I hope this is useful to many of you and look forward to your feedback,
Hans
PS: Now that I am announcing this, I suddenly have the feeling that I should
have talked with some lawyer (or Phil) about possible license issues because
of PyQt. I really hope there will not turn out to be problems with this.
More information about the PyQt
mailing list