1 Star 0 Fork 14

mijiacang/opencv-pyqt5

forked from luojie326/opencv-pyqt5 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.py 3.92 KB
一键复制 编辑 原始数据 按行查看 历史
王佳铖 提交于 2019-09-25 16:58 . add toolbar
import sys
import cv2
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import matplotlib.pyplot as plt
from custom.stackedWidget import StackedWidget
from custom.treeView import FileSystemTreeView
from custom.listWidgets import FuncListWidget, UsedListWidget
from custom.graphicsView import GraphicsView
class MyApp(QMainWindow):
def __init__(self):
super(MyApp, self).__init__()
self.tool_bar = self.addToolBar('工具栏')
self.action_right_rotate = QAction(QIcon("icons/右旋转.png"), "向右旋转90", self)
self.action_left_rotate = QAction(QIcon("icons/左旋转.png"), "向左旋转90°", self)
self.action_histogram = QAction(QIcon("icons/直方图.png"), "直方图", self)
self.action_right_rotate.triggered.connect(self.right_rotate)
self.action_left_rotate.triggered.connect(self.left_rotate)
self.action_histogram.triggered.connect(self.histogram)
self.tool_bar.addActions((self.action_left_rotate, self.action_right_rotate, self.action_histogram))
self.useListWidget = UsedListWidget(self)
self.funcListWidget = FuncListWidget(self)
self.stackedWidget = StackedWidget(self)
self.fileSystemTreeView = FileSystemTreeView(self)
self.graphicsView = GraphicsView(self)
self.dock_file = QDockWidget(self)
self.dock_file.setWidget(self.fileSystemTreeView)
self.dock_file.setTitleBarWidget(QLabel('目录'))
self.dock_file.setFeatures(QDockWidget.NoDockWidgetFeatures)
self.dock_func = QDockWidget(self)
self.dock_func.setWidget(self.funcListWidget)
self.dock_func.setTitleBarWidget(QLabel('图像操作'))
self.dock_func.setFeatures(QDockWidget.NoDockWidgetFeatures)
self.dock_used = QDockWidget(self)
self.dock_used.setWidget(self.useListWidget)
self.dock_used.setTitleBarWidget(QLabel('已选操作'))
self.dock_used.setFeatures(QDockWidget.NoDockWidgetFeatures)
self.dock_used.setFeatures(QDockWidget.NoDockWidgetFeatures)
self.dock_attr = QDockWidget(self)
self.dock_attr.setWidget(self.stackedWidget)
self.dock_attr.setTitleBarWidget(QLabel('属性'))
self.dock_attr.setFeatures(QDockWidget.NoDockWidgetFeatures)
self.dock_attr.close()
self.setCentralWidget(self.graphicsView)
self.addDockWidget(Qt.LeftDockWidgetArea, self.dock_file)
self.addDockWidget(Qt.TopDockWidgetArea, self.dock_func)
self.addDockWidget(Qt.RightDockWidgetArea, self.dock_used)
self.addDockWidget(Qt.RightDockWidgetArea, self.dock_attr)
self.setWindowTitle('Opencv图像处理')
self.setWindowIcon(QIcon('icons/main.png'))
self.src_img = None
self.cur_img = None
def update_image(self):
if self.src_img is None:
return
img = self.process_image()
self.cur_img = img
self.graphicsView.update_image(img)
def change_image(self, img):
self.src_img = img
img = self.process_image()
self.cur_img = img
self.graphicsView.change_image(img)
def process_image(self):
img = self.src_img.copy()
for i in range(self.useListWidget.count()):
img = self.useListWidget.item(i)(img)
return img
def right_rotate(self):
self.graphicsView.rotate(90)
def left_rotate(self):
self.graphicsView.rotate(-90)
def histogram(self):
color = ('b', 'g', 'r')
for i, col in enumerate(color):
histr = cv2.calcHist([self.cur_img], [i], None, [256], [0, 256])
histr = histr.flatten()
plt.plot(range(256), histr, color=col)
plt.xlim([0, 256])
plt.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
app.setStyleSheet(open('./custom/styleSheet.qss', encoding='utf-8').read())
window = MyApp()
window.show()
sys.exit(app.exec_())
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mijiacang/opencv-pyqt5.git
git@gitee.com:mijiacang/opencv-pyqt5.git
mijiacang
opencv-pyqt5
opencv-pyqt5
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385