pyqt5 opencv显示图片
时间: 2023-11-14 07:12:08 浏览: 53
PyQt5是一个Python的GUI编程工具包,而OpenCV是一个计算机视觉库。在PyQt5中,可以使用QLabel控件来显示图片,而OpenCV可以读取和处理图像。因此,我们可以将两者结合起来,使用OpenCV读取图像,然后使用PyQt5的QLabel控件来显示图像。
以下是一个简单的示例代码:
```python
import cv2
from PyQt5.QtGui import QImage, QPixmap
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt
class ImageWidget(QWidget):
def __init__(self):
super().__init__()
# 读取图像
self.image = cv2.imread('image.jpg')
# 将OpenCV图像转换为PyQt5图像
self.qimage = self.convert_cv_to_qt(self.image)
# 创建QLabel控件并设置图像
self.label = QLabel(self)
self.label.setPixmap(QPixmap.fromImage(self.qimage))
def convert_cv_to_qt(self, image):
"""将OpenCV图像转换为PyQt5图像"""
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
h, w, ch = rgb_image.shape
bytes_per_line = ch * w
qimage = QImage(rgb_image.data, w, h, bytes_per_line, QImage.Format_RGB888)
return qimage
if __name__ == '__main__':
app = QApplication([])
widget = ImageWidget()
widget.show()
app.exec_()
```
在这个示例中,我们首先使用OpenCV读取了一张名为“image.jpg”的图像。然后,我们将OpenCV图像转换为PyQt5图像,并使用QLabel控件来显示图像。最后,我们创建了一个QWidget窗口并将QLabel控件添加到其中。