python pyqt5 将qlabel里的图像经过CV2处理
时间: 2023-08-02 21:05:46 浏览: 86
PyQt5-图像处理
3星 · 编辑精心推荐
在 PyQT5 中,可以使用 QLabel 显示图像,同时使用 OpenCV (cv2) 对图像进行处理。具体步骤如下:
1. 加载图像并进行处理:
```python
import cv2
# 加载图像
img = cv2.imread('image.jpg')
# 进行处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
```
2. 将处理后的图像转换成 QImage 格式:
```python
from PyQt5.QtGui import QImage, QPixmap
# 将处理后的图像转换成 QImage 格式
qImg = QImage(blur.data, blur.shape[1], blur.shape[0], QImage.Format_Grayscale8)
# 将 QImage 转换成 QPixmap 格式
pixmap = QPixmap.fromImage(qImg)
```
3. 将 QPixmap 显示在 QLabel 中:
```python
from PyQt5.QtWidgets import QApplication, QLabel
# 创建 QLabel 控件并显示 QPixmap
app = QApplication([])
label = QLabel()
label.setPixmap(pixmap)
label.show()
app.exec_()
```
完整代码如下:
```python
import cv2
from PyQt5.QtGui import QImage, QPixmap
from PyQt5.QtWidgets import QApplication, QLabel
# 加载图像并进行处理
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
# 将处理后的图像转换成 QImage 格式
qImg = QImage(blur.data, blur.shape[1], blur.shape[0], QImage.Format_Grayscale8)
# 将 QImage 转换成 QPixmap 格式
pixmap = QPixmap.fromImage(qImg)
# 创建 QLabel 控件并显示 QPixmap
app = QApplication([])
label = QLabel()
label.setPixmap(pixmap)
label.show()
app.exec_()
```
注意,由于 OpenCV 和 PyQT5 都使用了 BGR 格式,因此在将图像转换成 QImage 格式时,需要使用 `QImage.Format_Grayscale8` 格式,否则会出现图像颜色异常的问题。
阅读全文