即上次说了OpenCV中的轮廓的理论知识,接下来做个小工具去实现这些功能,包含之前的轮廓检测以及图像金字塔。由于时间有限拉普拉斯金字塔没有实现,还有轮廓的性质没有获取显示出来,这里讲给出源码,有兴趣的可以自行添加。 本人运行的环境是:python3.6 PyQt5.9 Matplotlib openCV3 等
效果如图所示:
mian.py
# -*- coding:utf-8 -*-
#
import sys
from PyQt5.QtWidgets import QApplication , QMainWindow
from mainfun import *
if __name__ == '__main__':
app = QApplication(sys.argv)
mainW = QMainWindow()
ui = myWindows(mainW)
mainW.show()
sys.exit(app.exec_())
界面文件mainwindow3.py
“`
-- coding: utf-8 --
Form implementation generated from reading ui file ‘main3.ui’
#
Created by: PyQt5 UI code generator 5.9.1
#
WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(“MainWindow”)
MainWindow.resize(1131, 761)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName(“centralwidget”)
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName(“gridLayout”)
self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
self.tabWidget.setObjectName(“tabWidget”)
self.tab = QtWidgets.QWidget()
self.tab.setObjectName(“tab”)
self.gridLayout_2 = QtWidgets.QGridLayout(self.tab)
self.gridLayout_2.setObjectName(“gridLayout_2”)
self.frame = QtWidgets.QFrame(self.tab)
self.frame.setMinimumSize(QtCore.QSize(151, 0))
self.frame.setMaximumSize(QtCore.QSize(151, 16777215))
self.frame.setFrameShape(QtWidgets.QFrame.Box)
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame.setObjectName(“frame”)
self.canny_L2gradient_checkBox = QtWidgets.QCheckBox(self.frame)
self.canny_L2gradient_checkBox.setGeometry(QtCore.QRect(60, 100, 81, 21))
self.canny_L2gradient_checkBox.setObjectName(“canny_L2gradient_checkBox”)
self.canny_open_pushButton = QtWidgets.QPushButton(self.frame)
self.canny_open_pushButton.setGeometry(QtCore.QRect(60, 140, 75, 23))
self.canny_open_pushButton.setObjectName(“canny_open_pushButton”)
self.widget = QtWidgets.QWidget(self.frame)
self.widget.setGeometry(QtCore.QRect(10, 30, 122, 56))
self.widget.setObjectName(“widget”)
self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName(“verticalLayout”)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName(“horizontalLayout”)
self.label = QtWidgets.QLabel(self.widget)
self.label.setMinimumSize(QtCore.QSize(41, 22))
self.label.setMaximumSize(QtCore.QSize(41, 22))
self.label.setObjectName(“label”)
self.horizontalLayout.addWidget(self.label)
self.canny_min_spinBox = QtWidgets.QSpinBox(self.widget)
self.canny_min_spinBox.setMinimumSize(QtCore.QSize(71, 22))
self.canny_min_spinBox.setMaximumSize(QtCore.QSize(71, 22))
self.canny_min_spinBox.setMaximum(999999999)
self.canny_min_spinBox.setProperty(“value”, 200)
self.canny_min_spinBox.setObjectName(“canny_min_spinBox”)
self.horizontalLayout.addWidget(self.canny_min_spinBox)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName(“horizontalLayout_2”)
self.label_2 = QtWidgets.QLabel(self.widget)
self.label_2.setMinimumSize(QtCore.QSize(41, 22))
self.label_2.setMaximumSize(QtCore.QSize(41, 22))
self.label_2.setObjectName(“label_2”)
self.horizontalLayout_2.addWidget(self.label_2)
self.canny_max_spinBox = QtWidgets.QSpinBox(self.widget)
self.canny_max_spinBox.setMinimumSize(QtCore.QSize(71, 22))
self.canny_max_spinBox.setMaximumSize(QtCore.QSize(71, 22))
self.canny_max_spinBox.setMaximum(999999999)
self.canny_max_spinBox.setProperty(“value”, 300)
self.canny_max_spinBox.setObjectName(“canny_max_spinBox”)
self.horizontalLayout_2.addWidget(self.canny_max_spinBox)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.gridLayout_2.addWidget(self.frame, 0, 0, 1, 1)
self.frame_2 = QtWidgets.QFrame(self.tab)
self.frame_2.setFrameShape(QtWidgets.QFrame.Box)
self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_2.setObjectName(“frame_2”)
self.gridLayout_3 = QtWidgets.QGridLayout(self.frame_2)
self.gridLayout_3.setObjectName(“gridLayout_3”)
self.widget1 = QtWidgets.QWidget(self.frame_2)
self.widget1.setObjectName(“widget1”)
self.gridLayout_8 = QtWidgets.QGridLayout(self.widget1)
self.gridLayout_8.setObjectName(“gridLayout_8”)
self.canny_figure, self.canny_figaxes = plt.subplots()
self.canny_canvas = FigureCanvas(self.canny_figure)
# self.widget_4 = QtWidgets.QWidget(self.widget1)
# self.widget_4.setObjectName("widget_4")
self.gridLayout_8.addWidget(self.canny_canvas, 0, 0, 1, 1)
self.gridLayout_3.addWidget(self.widget1, 0, 0, 1, 1)
self.gridLayout_2.addWidget(self.frame_2, 0, 1, 1, 1)
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.gridLayout_4 = QtWidgets.QGridLayout(self.tab_2)
self.gridLayout_4.setObjectName("gridLayout_4")
self.frame_3 = QtWidgets.QFrame(self.tab_2)
self.frame_3.setMinimumSize(QtCore.QSize(91, 0))
self.frame_3.setMaximumSize(QtCore.QSize(91, 16777215))
self.frame_3.setFrameShape(QtWidgets.QFrame.Box)
self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_3.setObjectName("frame_3")
self.widget2 = QtWidgets.QWidget(self.frame_3)
self.widget2.setGeometry(QtCore.QRect(10, 20, 77, 112))
self.widget2.setObjectName("widget2")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget2)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.jzt_open_pushButton = QtWidgets.QPushButton(self.widget2)
self.jzt_open_pushButton.setObjectName("jzt_open_pushButton")
self.verticalLayout_2.addWidget(self.jzt_open_pushButton)
self.jzt_down_pushButton = QtWidgets.QPushButton(self.widget2)
self.jzt_down_pushButton.setObjectName("jzt_down_pushButton")
self.verticalLayout_2.addWidget(self.jzt_down_pushButton)
self.jzt_up_pushButton = QtWidgets.QPushButton(self.widget2)
self.jzt_up_pushButton.setObjectName("jzt_up_pushButton")
self.verticalLayout_2.addWidget(self.jzt_up_pushButton)
self.jzt_lapulasi_pushButton = QtWidgets.QPushButton(self.widget2)
self.jzt_lapulasi_pushButton.setObjectName("jzt_lapulasi_pushButton")
self.verticalLayout_2.addWidget(self.jzt_lapulasi_pushButton)
self.gridLayout_4.addWidget(self.frame_3, 0, 0, 1, 1)
self.frame_4 = QtWidgets.QFrame(self.tab_2)
self.frame_4.setFrameShape(QtWidgets.QFrame.Box)
self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_4.setObjectName("frame_4")
self.gridLayout_5 = QtWidgets.QGridLayout(self.frame_4)
self.gridLayout_5.setObjectName("gridLayout_5")
self.jzt_figure, self.jzt_figaxes = plt.subplots()
self.jzt_canvas = FigureCanvas(self.jzt_figure)
# self.widget_2 = QtWidgets.QWidget(self.frame_4)
# self.widget_2.setObjectName("widget_2")
self.gridLayout_5.addWidget(self.jzt_canvas, 0, 0, 1, 1)
self.gridLayout_4.addWidget(self.frame_4, 0, 1, 1, 1)
self.tabWidget.addTab(self.tab_2, "")
self.tab_3 = QtWidgets.QWidget()
self.tab_3.setObjectName("tab_3")
self.gridLayout_6 = QtWidgets.QGridLayout(self.tab_3)
self.gridLayout_6.setObjectName("gridLayout_6")
self.frame_5 = QtWidgets.QFrame(self.tab_3)
self.frame_5.setMinimumSize(QtCore.QSize(261, 0))
self.frame_5.setMaximumSize(QtCore.QSize(261, 16777215))
self.frame_5.setFrameShape(QtWidgets.QFrame.Box)
self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_5.setObjectName("frame_5")
self.lk_open_pushButton = QtWidgets.QPushButton(self.frame_5)
self.lk_open_pushButton.setGeometry(QtCore.QRect(170, 40, 75, 23))
self.lk_open_pushButton.setObjectName("lk_open_pushButton")
self.lk_getinfo_pushButton = QtWidgets.QPushButton(self.frame_5)
self.lk_getinfo_pushButton.setGeometry(QtCore.QRect(170, 100, 75, 23))
self.lk_getinfo_pushButton.setObjectName("lk_getinfo_pushButton")
self.frame_6 = QtWidgets.QFrame(self.frame_5)
self.frame_6.setGeometry(QtCore.QRect(10, 130, 241, 261))
self.frame_6.setFrameShape(QtWidgets.QFrame.Box)
self.frame_6.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_6.setObjectName("frame_6")
self.label_6 = QtWidgets.QLabel(self.frame_6)
self.label_6.setGeometry(QtCore.QRect(10, 10, 54, 16))
self.label_6.setFrameShape(QtWidgets.QFrame.NoFrame)
self.label_6.setObjectName("label_6")
self.lk_bianjie_comboBox = QtWidgets.QComboBox(self.frame_6)
self.lk_bianjie_comboBox.setGeometry(QtCore.QRect(20, 230, 91, 22))
self.lk_bianjie_comboBox.setObjectName("lk_bianjie_comboBox")
self.lk_bianjie_comboBox.addItem("")
self.lk_bianjie_comboBox.addItem("")
self.lk_bianjie_comboBox.addItem("")
self.lk_bianjie_comboBox.addItem("")
self.lk_bianjie_comboBox.addItem("")
self.lk_OK_pushButton = QtWidgets.QPushButton(self.frame_6)
self.lk_OK_pushButton.setGeometry(QtCore.QRect(130, 230, 75, 23))
self.lk_OK_pushButton.setObjectName("lk_OK_pushButton")
self.widget3 = QtWidgets.QWidget(self.frame_6)
self.widget3.setGeometry(QtCore.QRect(20, 30, 217, 189))
self.widget3.setObjectName("widget3")
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.widget3)
self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.label_7 = QtWidgets.QLabel(self.widget3)
self.label_7.setMinimumSize(QtCore.QSize(54, 20))
self.label_7.setMaximumSize(QtCore.QSize(54, 20))
self.label_7.setFrameShape(QtWidgets.QFrame.NoFrame)
self.label_7.setObjectName("label_7")
self.horizontalLayout_6.addWidget(self.label_7)
self.lk_ju_lineEdit = QtWidgets.QLineEdit(self.widget3)
self.lk_ju_lineEdit.setMinimumSize(QtCore.QSize(151, 20))
self.lk_ju_lineEdit.setMaximumSize(QtCore.QSize(151, 20))
self.lk_ju_lineEdit.setObjectName("lk_ju_lineEdit")
self.horizontalLayout_6.addWidget(self.lk_ju_lineEdit)
self.verticalLayout_4.addLayout(self.horizontalLayout_6)
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
self.label_8 = QtWidgets.QLabel(self.widget3)
self.label_8.setMinimumSize(QtCore.QSize(54, 20))
self.label_8.setMaximumSize(QtCore.QSize(54, 20))
self.label_8.setFrameShape(QtWidgets.QFrame.NoFrame)
self.label_8.setObjectName("label_8")
self.horizontalLayout_7.addWidget(self.label_8)
self.lk_zhongxin_lineEdit = QtWidgets.QLineEdit(self.widget3)
self.lk_zhongxin_lineEdit.setMinimumSize(QtCore.QSize(151, 20))
self.lk_zhongxin_lineEdit.setMaximumSize(QtCore.QSize(151, 20))
self.lk_zhongxin_lineEdit.setObjectName("lk_zhongxin_lineEdit")
self.horizontalLayout_7.addWidget(self.lk_zhongxin_lineEdit)
self.verticalLayout_4.addLayout(self.horizontalLayout_7)
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
self.label_9 = QtWidgets.QLabel(self.widget3)
self.label_9.setMinimumSize(QtCore.QSize(54, 20))
self.label_9.setMaximumSize(QtCore.QSize(54, 20))
self.label_9.setFrameShape(QtWidgets.QFrame.NoFrame)
self.label_9.setObjectName("label_9")
self.horizontalLayout_8.addWidget(self.label_9)
self.lk_area_lineEdit = QtWidgets.QLineEdit(self.widget3)
self.lk_area_lineEdit.setMinimumSize(QtCore.QSize(151, 20))
self.lk_area_lineEdit.setMaximumSize(QtCore.QSize(151, 20))
self.lk_area_lineEdit.setObjectName("lk_area_lineEdit")
self.horizontalLayout_8.addWidget(self.lk_area_lineEdit)
self.verticalLayout_4.addLayout(self.horizontalLayout_8)
self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
self.horizontalLayout_9.setObjectName("horizontalLayout_9")
self.label_10 = QtWidgets.QLabel(self.widget3)
self.label_10.setMinimumSize(QtCore.QSize(54, 20))
self.label_10.setMaximumSize(QtCore.QSize(54, 20))
self.label_10.setFrameShape(QtWidgets.QFrame.NoFrame)
self.label_10.setObjectName("label_10")
self.horizontalLayout_9.addWidget(self.label_10)
self.lk_long_lineEdit = QtWidgets.QLineEdit(self.widget3)
self.lk_long_lineEdit.setMinimumSize(QtCore.QSize(151, 20))
self.lk_long_lineEdit.setMaximumSize(QtCore.QSize(151, 20))
self.lk_long_lineEdit.setObjectName("lk_long_lineEdit")
self.horizontalLayout_9.addWidget(self.lk_long_lineEdit)
self.verticalLayout_4.addLayout(self.horizontalLayout_9)
self.verticalLayout_6.addLayout(self.verticalLayout_4)
self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
self.horizontalLayout_10.setObjectName("horizontalLayout_10")
self.verticalLayout_5 = QtWidgets.QVBoxLayout()
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.lk_tuxing_radioButton = QtWidgets.QRadioButton(self.widget3)
self.lk_tuxing_radioButton.setMinimumSize(QtCore.QSize(54, 21))
self.lk_tuxing_radioButton.setMaximumSize(QtCore.QSize(54, 21))
self.lk_tuxing_radioButton.setObjectName("lk_tuxing_radioButton")
self.verticalLayout_5.addWidget(self.lk_tuxing_radioButton)
self.label_11 = QtWidgets.QLabel(self.widget3)
self.label_11.setMinimumSize(QtCore.QSize(54, 20))
self.label_11.setMaximumSize(QtCore.QSize(54, 20))
self.label_11.setFrameShape(QtWidgets.QFrame.NoFrame)
self.label_11.setObjectName("label_11")
self.verticalLayout_5.addWidget(self.label_11)
self.horizontalLayout_10.addLayout(self.verticalLayout_5)
self.lk_tubao_textEdit = QtWidgets.QTextEdit(self.widget3)
self.lk_tubao_textEdit.setMinimumSize(QtCore.QSize(151, 71))
self.lk_tubao_textEdit.setMaximumSize(QtCore.QSize(151, 71))
self.lk_tubao_textEdit.setObjectName("lk_tubao_textEdit")
self.horizontalLayout_10.addWidget(self.lk_tubao_textEdit)
self.verticalLayout_6.addLayout(self.horizontalLayout_10)
self.frame_7 = QtWidgets.QFrame(self.frame_5)
self.frame_7.setGeometry(QtCore.QRect(10, 400, 241, 251))
self.frame_7.setFrameShape(QtWidgets.QFrame.Box)
self.frame_7.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_7.setObjectName("frame_7")
self.label_12 = QtWidgets.QLabel(self.frame_7)
self.label_12.setGeometry(QtCore.QRect(10, 10, 54, 16))
self.label_12.setFrameShape(QtWidgets.QFrame.NoFrame)
self.label_12.setObjectName("label_12")
self.lk_xingzhi_textEdit = QtWidgets.QTextEdit(self.frame_7)
self.lk_xingzhi_textEdit.setGeometry(QtCore.QRect(10, 30, 221, 211))
self.lk_xingzhi_textEdit.setObjectName("lk_xingzhi_textEdit")
self.widget4 = QtWidgets.QWidget(self.frame_5)
self.widget4.setGeometry(QtCore.QRect(10, 10, 145, 52))
self.widget4.setObjectName("widget4")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.widget4)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.label_3 = QtWidgets.QLabel(self.widget4)
self.label_3.setObjectName("label_3")
self.horizontalLayout_3.addWidget(self.label_3)
self.lk_mode_comboBox = QtWidgets.QComboBox(self.widget4)
self.lk_mode_comboBox.setMinimumSize(QtCore.QSize(75, 20))
self.lk_mode_comboBox.setObjectName("lk_mode_comboBox")
self.lk_mode_comboBox.addItem("")
self.lk_mode_comboBox.addItem("")
self.lk_mode_comboBox.addItem("")
self.lk_mode_comboBox.addItem("")
self.horizontalLayout_3.addWidget(self.lk_mode_comboBox)
self.verticalLayout_3.addLayout(self.horizontalLayout_3)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.label_4 = QtWidgets.QLabel(self.widget4)
self.label_4.setObjectName("label_4")
self.horizontalLayout_4.addWidget(self.label_4)
self.lk_fangf_comboBox = QtWidgets.QComboBox(self.widget4)
self.lk_fangf_comboBox.setMinimumSize(QtCore.QSize(75, 20))
self.lk_fangf_comboBox.setObjectName("lk_fangf_comboBox")
self.lk_fangf_comboBox.addItem("")
self.lk_fangf_comboBox.addItem("")
self.horizontalLayout_4.addWidget(self.lk_fangf_comboBox)
self.verticalLayout_3.addLayout(self.horizontalLayout_4)
self.widget5 = QtWidgets.QWidget(self.frame_5)
self.widget5.setGeometry(QtCore.QRect(10, 100, 143, 22))
self.widget5.setObjectName("widget5")
self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.widget5)
self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.label_5 = QtWidgets.QLabel(self.widget5)
self.label_5.setObjectName("label_5")
self.horizontalLayout_5.addWidget(self.label_5)
self.lk_list_comboBox = QtWidgets.QComboBox(self.widget5)
self.lk_list_comboBox.setMinimumSize(QtCore.QSize(75, 20))
self.lk_list_comboBox.setObjectName("lk_list_comboBox")
# self.lk_list_comboBox.addItem("")
# self.lk_list_comboBox.addItem("")
self.horizontalLayout_5.addWidget(self.lk_list_comboBox)
self.gridLayout_6.addWidget(self.frame_5, 0, 0, 1, 1)
self.frame_8 = QtWidgets.QFrame(self.tab_3)
self.frame_8.setFrameShape(QtWidgets.QFrame.Box)
self.frame_8.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_8.setObjectName("frame_8")
self.gridLayout_7 = QtWidgets.QGridLayout(self.frame_8)
self.gridLayout_7.setObjectName("gridLayout_7")
self.lk_figure, self.lk_figaxes = plt.subplots()
self.lk_canvas = FigureCanvas(self.lk_figure)
# self.widget_3 = QtWidgets.QWidget(self.frame_8)
# self.widget_3.setObjectName("widget_3")
self.gridLayout_7.addWidget(self.lk_canvas, 0, 0, 1, 1)
self.gridLayout_6.addWidget(self.frame_8, 0, 1, 1, 1)
self.tabWidget.addTab(self.tab_3, "")
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.canny_L2gradient_checkBox.setText(_translate("MainWindow", "L2gradient"))
self.canny_open_pushButton.setText(_translate("MainWindow", "打开文件"))
self.label.setText(_translate("MainWindow", "<html><head/><body><p align=\"right\">minVal:</p></body></html>"))
self.label_2.setText(_translate("MainWindow", "<html><head/><body><p align=\"right\">maxVal:</p></body></html>"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "边缘检测"))
self.jzt_open_pushButton.setText(_translate("MainWindow", "打开文件"))
self.jzt_down_pushButton.setText(_translate("MainWindow", "pyrDown"))
self.jzt_up_pushButton.setText(_translate("MainWindow", "pyrUp"))
self.jzt_lapulasi_pushButton.setText(_translate("MainWindow", "拉普拉斯"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "图像金字塔"))
self.lk_open_pushButton.setText(_translate("MainWindow", "打开图像"))
self.lk_getinfo_pushButton.setText(_translate("MainWindow", "获取信息"))
self.label_6.setText(_translate("MainWindow", "<html><head/><body><p>轮廓特征</p></body></html>"))
self.lk_bianjie_comboBox.setItemText(0, _translate("MainWindow", "直边界矩形"))
self.lk_bianjie_comboBox.setItemText(1, _translate("MainWindow", "最小边界矩形"))
self.lk_bianjie_comboBox.setItemText(2, _translate("MainWindow", "外接圆"))
self.lk_bianjie_comboBox.setItemText(3, _translate("MainWindow", "椭圆拟合"))
self.lk_bianjie_comboBox.setItemText(4, _translate("MainWindow", "直线拟合"))
self.lk_OK_pushButton.setText(_translate("MainWindow", "确定"))
self.label_7.setText(_translate("MainWindow", "<html><head/><body><p align=\"right\">矩:</p></body></html>"))
self.label_8.setText(_translate("MainWindow", "<html><head/><body><p align=\"right\">重心:</p></body></html>"))
self.label_9.setText(_translate("MainWindow", "<html><head/><body><p align=\"right\">轮廓面积:</p></body></html>"))
self.label_10.setText(_translate("MainWindow", "<html><head/><body><p align=\"right\">轮廓周长:</p></body></html>"))
self.lk_tuxing_radioButton.setText(_translate("MainWindow", "凸性"))
self.label_11.setText(_translate("MainWindow", "<html><head/><body><p align=\"right\">凸包:</p></body></html>"))
self.label_12.setText(_translate("MainWindow", "<html><head/><body><p>轮廓性质</p></body></html>"))
self.label_3.setText(_translate("MainWindow", "检索模式:"))
self.lk_mode_comboBox.setItemText(0, _translate("MainWindow", "LIST"))
self.lk_mode_comboBox.setItemText(1, _translate("MainWindow", "EXTERNAL"))
self.lk_mode_comboBox.setItemText(2, _translate("MainWindow", "CCOMP"))
self.lk_mode_comboBox.setItemText(3, _translate("MainWindow", "TREE"))
self.label_4.setText(_translate("MainWindow", "近似方法:"))
self.lk_fangf_comboBox.setItemText(0, _translate("MainWindow", "NONE"))
self.lk_fangf_comboBox.setItemText(1, _translate("MainWindow", "SIMPLE"))
self.label_5.setText(_translate("MainWindow", "轮廓列表:"))
# self.lk_list_comboBox.setItemText(0, _translate("MainWindow", "1"))
# self.lk_list_comboBox.setItemText(1, _translate("MainWindow", "2"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "图像轮廓"))
推荐一个GitChat(赶紧领取,前十名免费,速速领取)
如有疑问请联系,1171119770@qq.com
详细的文档说明: http://download.csdn.net/download/eric_lmy/10135602
打包好的exe文件: http://pan.baidu.com/s/1i4QG11N