代码拉取完成,页面将自动刷新
同步操作将从 luojie326/opencv-pyqt5 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
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_())
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。