python 基于opencv写一个项目代码,实现调用调用“ks.ui",实现当点击Puthbutton_2时,选择打开图像文件,显示在label_2中
时间: 2024-05-16 10:18:13 浏览: 170
首先需要安装OpenCV库,可以使用以下命令在终端中安装:
```
pip install opencv-python
```
然后可以使用以下代码实现上述需求:
```python
import cv2
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QFileDialog
class MyWindow(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('OpenCV with PyQt5')
self.setGeometry(100, 100, 800, 600)
self.label1 = QtWidgets.QLabel(self)
self.label1.setText('OpenCV with PyQt5')
self.label1.move(330, 20)
self.pushButton1 = QtWidgets.QPushButton('Exit', self)
self.pushButton1.setGeometry(700, 550, 80, 30)
self.pushButton1.clicked.connect(self.close)
self.pushButton2 = QtWidgets.QPushButton('Open Image', self)
self.pushButton2.setGeometry(20, 550, 120, 30)
self.pushButton2.clicked.connect(self.openImage)
self.label2 = QtWidgets.QLabel(self)
self.label2.setGeometry(180, 60, 600, 480)
self.show()
def openImage(self):
fileName, _ = QFileDialog.getOpenFileName(self, 'Open Image', '', 'Image files (*.jpg *.jpeg *.png *.gif)')
if fileName:
image = cv2.imread(fileName)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
height, width, channel = image.shape
bytesPerLine = 3 * width
qImg = QtGui.QImage(image.data, width, height, bytesPerLine, QtGui.QImage.Format_RGB888)
pixmap = QtGui.QPixmap.fromImage(qImg)
self.label2.setPixmap(pixmap)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())
```
在这个代码中,我们使用了PyQt5库来创建GUI,使用OpenCV库来读取和显示图像文件。当点击“Open Image”按钮时,会弹出一个文件选择框,用户可以选择要打开的图像文件。然后我们使用OpenCV读取该图像文件,并将其转换为QPixmap格式,最后显示在GUI中的label2上。
注意,本例中的图像是以RGB格式读取的,所以需要使用cv2.cvtColor函数将其转换为RGB格式,如果读取的图像是灰度或其他格式,则不需要进行此转换。
阅读全文
相关推荐
















