赞
踩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:这里可以添加本文要记录的大概内容:
1、label 的一些设置,主要是文本、图片对齐方式设置(居中)
2、视频在 label 中播放,简易视频播放器
3、将读取的灰度数组在 label 上自适应显示或播放
4、图片在 label 上自适应显示
提示:以下是本篇文章正文内容,下面案例可供参考
使用 pyqt5 设计好窗口后,转为 .py 文件。
对 label 属性的一些修改
代码如下(示例):
# 创建 QLabel self.FileDisplay = QtWidgets.QLabel(self.CentralWidget) # 设置 label 位置大小 # QtCore.QRect(xPosition, yPosition, width, height) self.FileDisplay.setGeometry(QtCore.QRect(20, 140, 640, 512)) # 设置形状最小值 # QtCore.QSize(width, height) self.FileDisplay.setMinimumSize(QtCore.QSize(640, 512)) # ----------------------------------------------------------- # 设置 label 中文本或图片的对其方式 # AlignCenter: 垂直水平居中对齐 # AlignVCenter: 垂直居中 # AlignHCenter: 水平居中 # AlignLeft: 水平方向靠左 # AlignRight: 水平方向靠右 # AlignTop: 垂直方向靠上 # AlignButton: 垂直方向靠下 # AlignJustify: 水平方向调整间距两端对齐 self.FileDisplay.setAlignment(QtCore.Qt.AlignCenter) # ----------------------------------------------------------- # 设置现状 self.FileDisplay.setFrameShape(QtWidgets.QFrame.Box) # 设置初始显示的文字 self.FileDisplay.setText("") # 控件名称 self.FileDisplay.setObjectName("FileDisplay")
代码如下(示例):
import cv2 # filepath: 视频文件完整路径 video = cv2.VideoCapture(filepath) # 获取输入视频的宽度 width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取输入视频的高度 height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 获取视频帧数 frame_number = int(video.get(cv2.CAP_PROP_FRAME_COUNT)) # 获取输入视频的帧率 frame_rate = int(video.get(cv2.CAP_PROP_FPS)) ratio1 = width / 1920 (label 宽度) ratio2 = height / 1080 (label 高度) ratio = max(ratio1, ratio2) while video.isOpened(): ret, frame = video.read() # 将图片转换为 Qt 格式 # QImage:QImage(bytes,width,height,format) picture = QtGui.QImage(frame.data, width, height, 3*width, QImage.Format_RGB888) pixmap = QPixmap.fromImage(picture) # 按照缩放比例自适应 label 显示 pixmap.setDevicePixelRatio(ratio) self.FileDisplay.setPixmap(pixmap) cv2.waitKey(10) video.release() # 释放资源
首先读取 “.tif” | “.tiff” 文件
可以使用 < import tifffile > 这个库读取文件
代码如下(示例):
# ratio: 帧缩放比例 ratio1 = width / 1920 (label 宽度) ratio2 = height / 1080 (label 高度) ratio = max(ratio1, ratio2) # 将图片转换为 Qt 格式,才能在 label 上显示 # 若是 tif、tiff 灰度图显示 # uint8 型: format = QImage.Format_Grayscale8 # uint16 型: format = QImage.Format_Grayscale16 # QImage:QImage(input array,width,height,format) picture = QtGui.QImage(frame_array.data, width, height, 3*width, QImage.Format_Grayscale8) pixmap = QPixmap.fromImage(picture) # 按照缩放比例自适应 label 显示 pixmap.setDevicePixelRatio(ratio) # 在 label 中显示 self.FileDisplay.setPixmap(pixmap)
format 具体格式看官方文档:
https://www.riverbankcomputing.com/static/Docs/PyQt5/api/qtgui/qimage.html
代码如下(示例):
# filepath: 文件完整路径
pixmap = QPixmap(filepath)
ratio1 = pixmap.width() / 1920 (label 宽度)
ratio2 = pixmap.height() / 1080 (label 高度)
ration = max(ratio1, ratio2)
pixmap.setDevicePixelRatio(ration)
self.FileDisplay.setPixmap(pixmap)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。