Pyqt.py:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import os
class filedialogdemo(QWidget):
def __init__(self, parent=None):
super(filedialogdemo, self).__init__(parent)
layout = QVBoxLayout()
self.btn = QPushButton()
self.btn.clicked.connect(self.loadFile)
self.btn.setText("从文件中获取照片")
layout.addWidget(self.btn)
self.label = QLabel()
layout.addWidget(self.label)
self.content = QTextEdit()
layout.addWidget(self.content)
self.setWindowTitle("测试")
self.setLayout(layout)
def loadFile(self):
print("load--file")
fname, _ = QFileDialog.getOpenFileName(self, '选择图片', 'G:\\PyCharm\\pytorch\\images', 'Image files(*.jpg *.gif *.png)')
self.label.setPixmap(QPixmap(fname))
os.system("python detect_barcode.py " + fname)
if __name__ == '__main__':
app = QApplication(sys.argv)
fileload = filedialogdemo()
fileload.show()
sys.exit(app.exec_())
detect_barcode.py
def args_parse():
image_test=[]
image_test.append('--image')
image_test.append(sys.argv[1])
sys.argv[1:]=image_test
# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required = True,
help = "path to the image file")
args = vars(ap.parse_args())
original= cv2.imread(args["image"])
return original
这样就可以通过窗口实现python detect_barcode.py --image images/0.jpg
但是要注意的是切换另一张图片的时候记得要重新运行,否则会卡顿。
只要运行Pyqt.py即可。