姬長信(Redy)

如何将OpenCV与PyQt结合起来创建一个简单的…


我需要对图像执行大量操作.所以我使用了OpenCV. OpenCV在图像处理方面非常有效,但是提供合适的GUI并不太好.所以我决定使用PyQt绘制自定义GUI和OpenCV来处理我的图像.

我创建了一个非常简单的程序,您直接从文档中选择.我只是读了一张jpg图片,然后按键s将其保存为png格式.

我的目标是用按钮替换键s按下以使用PyQt执行相同的操作.另外,我希望PyQt显示的窗口与OpenCV具有相同的行为:主要说来,函数imshow()显示一个适合图像大小的窗口.

这是我的OpenCV简单代码:

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()

输出:

这是一个简单的PyQt代码来绘制一个简单的窗口:

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()

如何混合使用2个代码来达到目标???