Image Konvertieren, Image Module

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
degon
User
Beiträge: 28
Registriert: Montag 14. Juni 2010, 12:03

Hi,

ich moechte Bilder laden und in ein PyQT GUI einfuegen, leider ist bei mir einiges verzerrt. Was mache ich falsch? Hier ist ein Auszug aus meinem Code. Ist die Konvertierung schlecht?

Code: Alles auswählen

        im = Image.open(str(self.ui.lineAddress.text()))
        ImConv = im.convert('L') # Konvertiert RGB in BW uint8 Grauwerte
        (sizeX, sizeY) = ImConv.size;   # = nim.size() geht nicht, warum? KLAR
        ImArray = np.array(ImConv);
        self.qimg = qimage2numpy.gray2qimage(ImArray)
        self.Imloaded = 1

        pixmap = QPixmap.fromImage(self.qimg)
        windowsize = self.ui.graphClassic.size()
        pixmap = pixmap.scaled(windowsize , Qt.KeepAspectRatio, Qt.SmoothTransformation)
        item = QGraphicsPixmapItem(pixmap)
        scene = QGraphicsScene(self)
        scene.setSceneRect(0, 0, pixmap.width()-5, pixmap.height()-5)
        scene.addItem(item)
        self.ui.graphClassic.setScene(scene)
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Warum gehst Du den Umweg über PIL und numpy? Eine einfache Graustufenkonvertierung kannst Du mit Qt direkt vornehmen.
degon
User
Beiträge: 28
Registriert: Montag 14. Juni 2010, 12:03

Ich habe weitere Scripte die ueber die Spalten und Zeilen summieren um Auswertungen zu machen. Wonach muss ich denn im Qt suchen?
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Fürs Graukonvertieren in Qt reicht Dir vllt. QImage.convertToFormat:

Code: Alles auswählen

gray = colored.convertToFormat(QImage.Format_Indexed8,
            map(lambda i: qRgb(i, i, i), xrange(0,256)), Qt.AutoColor)
Du kannst auch die Modifikationen in PIL/numpy vornehmen, in ein StringIO speichern und per QPixmap.loadFromData in Qt neu laden, ist allerdings auch nicht sehr performant.
Antworten