Мне нужно выполнить много операций над изображением. Поэтому я использовал OpenCV. OpenCV очень эффективен в обработке изображений, однако не слишком хорошо представить подходящий графический интерфейс. Поэтому я решил использовать PyQt для создания пользовательского графического интерфейса и OpenCV для обработки моего изображения.
Я создал очень простую программу, которую вы непосредственно выбрали из документации. Я просто прочитал изображение jpg
и сохранил его в формате png
, нажав клавишу s
.
Моя цель - заменить клавишу 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 кода для достижения моей цели?