CoolFace
Apppublic

Aluode/PerceptionLabPortable

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
ImageItem.py61 linesDownload Raw Back to examples
1"""2Demonstrates very basic use of ImageItem to display image data inside a ViewBox.3"""4 5from time import perf_counter6 7import numpy as np8 9import pyqtgraph as pg10from pyqtgraph.Qt import QtCore11 12app = pg.mkQApp("ImageItem Example")13 14## Create window with GraphicsView widget15win = pg.GraphicsLayoutWidget()16win.show()  ## show widget alone in its own window17win.setWindowTitle('pyqtgraph example: ImageItem')18view = win.addViewBox()19 20## lock the aspect ratio so pixels are always square21view.setAspectLocked(True)22 23## Create image item24img = pg.ImageItem(border='w')25view.addItem(img)26 27## Set initial view bounds28view.setRange(QtCore.QRectF(0, 0, 600, 600))29 30## Create random image31data = np.random.normal(size=(15, 600, 600), loc=1024, scale=64).astype(np.uint16)32i = 033 34updateTime = perf_counter()35elapsed = 036 37timer = QtCore.QTimer()38timer.setSingleShot(True)39# not using QTimer.singleShot() because of persistence on PyQt. see PR #160540 41def updateData():42    global img, data, i, updateTime, elapsed43 44    ## Display the data45    img.setImage(data[i])46    i = (i+1) % data.shape[0]47 48    timer.start(1)49    now = perf_counter()50    elapsed_now = now - updateTime51    updateTime = now52    elapsed = elapsed * 0.9 + elapsed_now * 0.153 54    # print(f"{1 / elapsed:.1f} fps")55    56timer.timeout.connect(updateData)57updateData()58 59if __name__ == '__main__':60    pg.exec()61 
Aluode/PerceptionLabPortable · CoolFace