How convert pg.ImageItem, to cv2 image

75 views
Skip to first unread message

Aldrich Cabrera

unread,
Feb 27, 2020, 5:31:43 PM2/27/20
to pyqtgraph
Hi, I have a code where obtain multiples pg.ImageItem, I visualise and save the images using "pg.exporters", but I would like to show the pg.ImageItems like a video or images in Cv2 without use pg.exporters. I share a part of my code:



def saveFig(self):
fname1 = "./result_%s.png"%time.strftime("%H:%M:%S", gmtime())
fname2 = "./result_%s.png"%time.strftime("%H:%M:%S", gmtime())
fname3 = "./result_%s.png"%time.strftime("%H:%M:%S", gmtime())
fname4 = ./result_%s.png"%time.strftime("%H:%M:%S", gmtime())
fname5 = "./result_%s.png"%time.strftime("%H:%M:%S", gmtime())
fname6 = "./result_%s.png"%time.strftime("%H:%M:%S", gmtime())
fname7 = "./result_%s.png"%time.strftime("%H:%M:%S", gmtime())
fname8 = "./result_%s.png"%time.strftime("%H:%M:%S", gmtime())

"""self.exporter1 = pg.exporters.ImageExporter(self.pItems[0])
self.exporter2 = pg.exporters.ImageExporter(self.pItems[1])
self.exporter3 = pg.exporters.ImageExporter(self.pItems[2])
self.exporter4 = pg.exporters.ImageExporter(self.pItems[3])
self.exporter5 = pg.exporters.ImageExporter(self.pItems[4])
self.exporter6 = pg.exporters.ImageExporter(self.pItems[5])
self.exporter7 = pg.exporters.ImageExporter(self.pItems[6])
self.exporter8 = pg.exporters.ImageExporter(self.pItems[7])"""

self.exporter1 = pg.exporters.ImageExporter(self.imageItems[0])
self.exporter2 = pg.exporters.ImageExporter(self.imageItems[1])
self.exporter3 = pg.exporters.ImageExporter(self.imageItems[2])
self.exporter4 = pg.exporters.ImageExporter(self.imageItems[3])
self.exporter5 = pg.exporters.ImageExporter(self.imageItems[4])
self.exporter6 = pg.exporters.ImageExporter(self.imageItems[5])
self.exporter7 = pg.exporters.ImageExporter(self.imageItems[6])
self.exporter8 = pg.exporters.ImageExporter(self.imageItems[7])

self.exporter = [self.exporter1,self.exporter2,self.exporter3,self.exporter4,self.exporter5,self.exporter6,self.exporter7,self.exporter8]

for i in range(len(self.pItems)):
self.exporter[i].params.param('width').setValue(553, blockSignal=self.exporter[i].widthChanged)
self.exporter[i].params.param('height').setValue(396, blockSignal=self.exporter[i].heightChanged)

a = self.exporter[0].export(fname1)
cv2.imshow(a)
#self.exporter[1].export(fname2)
#self.exporter[2].export(fname3)
#self.exporter[3].export(fname4)
#self.exporter[4].export(fname5)
#self.exporter[5].export(fname6)
#self.exporter[6].export(fname7)
#self.exporter[7].export(fname8)



Patrick

unread,
Feb 27, 2020, 9:20:02 PM2/27/20
to pyqtgraph
Hi,

So using imageItems[0].image to retrieve the original image data as a numpy array, or imageItems[0].qimage to get the QImage that is actually rendered. It would be up to you to do any required processing and/or telling cv how to interpret the raw pixel data (colour depth etc).

Patrick
Reply all
Reply to author
Forward
0 new messages