Pyqt+Opencv的练习

第一题

创建一个 PyQt 应用程序,该应用程序能够:

1.使用 OpenCV 加载一张图像。

2.在 PyQt 的窗口中显示这张图像。

3.提供四个按钮(QPushButton):

  • 一个用于将图像转换为灰度图
  • 一个用于将图像恢复为原始彩色图
  • 一个用于将图像进行翻转
  • 一个用于将图像进行旋转

4.当用户点击按钮时,相应地更新窗口中显示的图像。

思路分析:

  1. 创建 PyQt 应用程序
    • 使用 QApplication 初始化应用程序。
    • 创建一个主窗口 QMainWindow 或 QWidget
  2. 加载和显示图像
    • 使用 OpenCV 加载图像。
    • 将 OpenCV 的图像格式转换为 Qt 可以显示的格式(QImage)。
    • 使用 QLabel 显示图像。
  3. 创建按钮并添加功能
    • 使用 QPushButton 创建四个按钮,每个按钮对应一个图像处理操作。
    • 将按钮添加到布局中。
    • 连接按钮的点击信号到相应的槽函数。
  4. 图像处理
    • 编写槽函数来处理按钮点击事件,执行相应的图像处理操作。
    • 更新 QLabel 上显示的图像。
  5. 更新显示
    • 在槽函数中,每次图像处理后,更新 QLabel 的图像显示。

 

涉及到的函数及方法:

 cv2 相关

  • cv2.imread(filepath, flags=cv2.IMREAD_COLOR):
    • 功能:读取图像文件。
    • 参数:
      • filepath:图像文件的路径。
      • flags:指定读取图像的方式(例如,彩色图像、灰度图像等)。
    • 返回值:图像数据,通常是一个 NumPy 数组。
  • cv2.cvtColor(src, code):
    • 功能:转换图像从一个颜色空间到另一个。
    • 参数:
      • src:源图像。
      • code:转换代码(例如,从 BGR 到 RGB,从 BGR 到灰度等)。
    • 返回值:转换后的图像。
  • cv2.flip(src, flipCode):
    • 功能:翻转图像。
    • 参数:
      • src:源图像。
      • flipCode:翻转方式(例如,水平翻转、垂直翻转等)。
    • 返回值:翻转后的图像。

PyQt6 相关

  • uic.loadUi(ui_file, baseinstance):
    • 功能:从指定的 UI 文件加载界面,并将其设置到 baseinstance 中。
    • 参数:
      • ui_file:UI 文件的路径。
      • baseinstance:一个 QWidget 或其子类实例,用于加载 UI。
  • QImage(data, width, height, bytes_per_line, format):
    • 功能:创建一个 QImage 对象。
    • 参数:
      • data:图像数据的指针。
      • width:图像的宽度。
      • height:图像的高度。
      • bytes_per_line:每行的字节数。
      • format:图像格式。
  • QPixmap.fromImage(image):
    • 功能:从 QImage 对象创建一个 QPixmap 对象。
    • 参数:
      • image:QImage 对象。
  • QLabel.setPixmap(pixmap):
    • 功能:设置 QLabel 的图像。
    • 参数:
      • pixmap:QPixmap 对象。
  • QLabel.setScaledContents(True):
    • 功能:使 QLabel 根据其内容自动调整大小。

 源码如下:

import cv2
from PyQt6 import uic
from PyQt6.QtGui import QImag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值