【发布时间】:2015-04-01 16:13:41
【问题描述】:
我需要对图像执行大量操作。所以我使用了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()
如何混合这两个代码以达到我的目标?
【问题讨论】:
标签: python python-2.7 opencv pyqt4