Comment combiner OpenCV avec PyQt pour créer une interface graphique simple?

J'ai besoin d'effectuer beaucoup d'opérations sur une image. J'ai donc utilisé OpenCV. OpenCV est très efficace dans le traitement de l'image, mais il n'est pas trop bon pour présenter un adapté GUI. J'ai donc décidé d'utiliser PyQt pour dessiner un GUI personnalisé et OpenCV pour le traitement de mon image.

J'ai créé un programme très simple vous directement repris de la documentation. J'ai tout simplement lire un jpg de l'image et de l'enregistrer dans un png format en appuyant sur la touche s.

Mon but est de remplacer la clé s avec un bouton pour effectuer la même action à l'aide de PyQt. Aussi, je veux la fenêtre affichée par PyQt pour avoir le même comportement que OpenCV: principalement en parlant, la fonction imshow() affiche une fenêtre qui s'adapte à la taille de l'image.

Voici mon OpenCV code simple:

import numpy 
import cv2

class LoadImage:
    def loadImage(self):
        img = cv2.imread('photo.jpg')
        cv2.imshow('Image on a window',img)
        k = cv2.waitKey(0)
        if k == 27:
            cv2.destroyAllWindows()
        elif k == ord('s'):
            cv2.imwrite('photopng.png',img)
            cv2.destroyAllWindows()

if __name__=="__main__":
    LI=LoadImage()
    LI.loadImage()

De sortie:

Comment combiner OpenCV avec PyQt pour créer une interface graphique simple?

Ici est une simple PyQt code pour dessiner une fenêtre simple:

import sys
from PyQt4 import QtGui

class DrawWindow:
    def drawWindow(self):
        app=QtGui.QApplication(sys.argv)
        w=QtGui.QWidget()
        #w.resize(250,250)
        w.move(300,300)
        w.setWindowTitle("Simple Window")
        w.show()

        sys.exit(app.exec_())

if __name__=="__main__":
    DW=DrawWindow()
    DW.drawWindow()

Comment puis-je mélanger les 2 codes pour atteindre mon objectif?

source d'informationauteur