Ejemplo n.º 1
0
Archivo: image.py Proyecto: pwuertz/qao
def updateQImage(qimage, data, vmin = None, vmax = None, cmap = cmap_wjet):
    """
    Modify a QImage in place from data array.

    Like :func:`createQImage`, but instead of creating a new QImage,
    this function updates an existing QImage. The size of the image
    must not change.
    
    :param qimage: (QImage) QImage object to be updated.
    :param data: (ndarray) Array containing the data values.
    :param vmin: (float) Minimum data value or None.
    :param vmax: (float) Maximum data value or None.
    :param cmap: (dict) Colormap for converting the data.
    :returns: (QImage) Image from given data.
    
    Example::
        
        import numpy as np
        from qao.plot.image import createQImage, updateQImage
        
        data = np.random.rand(200, 200)
        qimage = createQImage(np.zeros_like(data))
        updateQImage(qimage, data)
        qimage.save("random.png")
    """
    data, vmin, vmax = __checkTypes(data, vmin, vmax)
    # write rgb data to existing QImage
    assert data.size == (qimage.height()*qimage.width()), "invalid size"
    rgbdata_cobject = qimage.bits().ascobject()
    cmapping_cobject(data, rgbdata_cobject, vmin, vmax, cmap["r_map"], cmap["g_map"], cmap["b_map"])
Ejemplo n.º 2
0
Archivo: image.py Proyecto: pwuertz/qao
def createQImage(data, vmin = None, vmax = None, cmap = cmap_wjet):
    """
    Create QImage from data array using a color-map.

    The minimum and maximum value for scaling the colormap is
    determined from `data` unless specified by `vmin` and `vmax`.
    The output will be a 24bit RGB QImage that can be used within
    graphical user applications or saved to files. 
    
    :param data: (ndarray) Array containing the data values.
    :param vmin: (float) Minimum data value or None.
    :param vmax: (float) Maximum data value or None.
    :param cmap: (dict) Colormap for converting the data.
    :returns: (QImage) Image from given data.
    
    Example::
        
        import numpy as np
        from qao.plot.image import createQImage, cmap_jet
        
        data = np.random.rand(200, 200)
        qimage = createQImage(data, cmap = cmap_jet)
        qimage.save("random.png")
    """
    data, vmin, vmax = __checkTypes(data, vmin, vmax)
    # write rgb data to new QImage
    qimage = QtGui.QImage(data.shape[1], data.shape[0], QtGui.QImage.Format_RGB32)
    rgbdata_cobject = qimage.bits().ascobject()
    cmapping_cobject(data, rgbdata_cobject, vmin, vmax, cmap["r_map"], cmap["g_map"], cmap["b_map"])
    return qimage