QT,opencv制作界面化图片操作

思路分析:

  1. main.py主要负责用户界面和事件处理。

    • 它首先导入许多所需的模块,然后定义一个MyWidget类来处理用户界面和信号。
    • MyWidget类的构造函数在载入用户界面后,设置一些初值和预置的图像处理选项,然后与按钮、滑块和下拉框的信号(如点击、值改变、选择改变等)连接对应的槽函数。
    • 槽函数主要调用Photo_Operate模块中的函数来处理图像,并更新用户界面上的图像显示。
  2. Photo_Operate.py 主要负责图像处理。

    • 它包含一系列的函数,每个函数对应一种特定的图像处理操作,如灰度化、旋转、亮度调整、对比度调整、模糊、边缘检测等。
    • 这些函数读取路径下的图像文件,进行相应的处理,然后将结果保存到预定的路径下。

mian.py

import sys
from opencv import Photo_Operate
from PyQt6 import uic
from PyQt6.QtGui import QPixmap
from PyQt6.QtWidgets import QWidget, QApplication, QLabel, QPushButton, QFileDialog, \
    QSlider, QComboBox


class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        ui = uic.loadUi('1.ui', self)
        self.photo_obj_sav = 'C:/Users/29610/new.jpg'
        self.photo_obj_sav_gray = 'C:/Users/29610/new_gray.jpg'
        self.photo_path_save = 'C:/Users/29610/save.jpg'
        self.photo_path_open = ''
        self.list = ['模糊', '锐化', '边缘检测']
        self.label: QLabel = self.label
        self.btn1: QPushButton = self.btn1
        self.btn2: QPushButton = self.btn2
        self.btn3: QPushButton = self.btn3
        self.btn4: QPushButton = self.btn4
        self.btn5: QPushButton = self.btn5
        self.btn6: QPushButton = self.btn6
        self.slider1: QSlider = self.slider1
        self.slider2: QSlider = self.slider2
        self.comboBox: QComboBox = self.comboBox
        self.comboBox.addItems(self.list)
        self.btn1.clicked.connect(self.btn1_slot)
        self.btn2.clicked.connect(self.btn2_slot)
        self.btn3.clicked.connect(self.btn3_slot)
        self.btn4.clicked.connect(self.btn4_slot)
        self.btn5.clicked.connect(self.btn5_slot)
        self.btn6.clicked.connect(self.btn6_slot)
        self.slider1.valueChanged.connect(self.slider1_slot)
        self.slider2.valueChanged.connect(self.slider2_slot)
        self.comboBox.activated.connect(self.getComboBox_slot)

    #灰度化
    def btn1_slot(self):
        path = Photo_Operate.grayscale(
            self.photo_obj_sav_gray,
            self.photo_obj_sav_gray)
        self.label.setPixmap(QPixmap(path))
        self.photo_path_save = rf'{path}'
        self.label.setScaledContents(True)

    #打开
    def btn2_slot(self):
        path, filetype = QFileDialog.getOpenFileName(
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值