def __init__(self, parent, orig, view, log): QWidget.__init__(self, parent) self.ui = Ui_ControlForm() self.ui.setupUi(self) self.orig = orig self.view = view self.log = log self.ui.colsSpinBox.setValue(self.orig.cols) self.ui.rowsSpinBox.setValue(self.orig.rows) self.ui.colsSpinBox.valueChanged.connect(self.onColsNumberChanged) self.ui.rowsSpinBox.valueChanged.connect(self.onRowsNumberChanged) self.ui.colsSpinBox.editingFinished.connect(self.onColsNumberEdited) self.ui.rowsSpinBox.editingFinished.connect(self.onRowsNumberEdited) self.ui.thresholdSpinBox.valueChanged.connect(self.thresholdDraw) self.ui.maxValueSpinBox.valueChanged.connect(self.thresholdDraw) self.ui.thresholdTypeComboBox.currentIndexChanged.connect(self.thresholdDraw) self.ui.thresholdSpinBox.editingFinished.connect(self.thresholdDraw) self.ui.maxValueSpinBox.editingFinished.connect(self.thresholdDraw) self.ui.dpSpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.minDistSpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.param1SpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.param2SpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.minRadiusSpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.maxRadiusSpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.dpSpinBox.editingFinished.connect(self.houghCirclesDraw) self.ui.minDistSpinBox.editingFinished.connect(self.houghCirclesDraw) self.ui.param1SpinBox.editingFinished.connect(self.houghCirclesDraw) self.ui.param2SpinBox.editingFinished.connect(self.houghCirclesDraw) self.ui.minRadiusSpinBox.editingFinished.connect(self.houghCirclesDraw) self.ui.maxRadiusSpinBox.editingFinished.connect(self.houghCirclesDraw)
class ControlWindow(QDialog): def __init__(self, parent, orig, view, log): QWidget.__init__(self, parent) self.ui = Ui_ControlForm() self.ui.setupUi(self) self.orig = orig self.view = view self.log = log self.ui.colsSpinBox.setValue(self.orig.cols) self.ui.rowsSpinBox.setValue(self.orig.rows) self.ui.colsSpinBox.valueChanged.connect(self.onColsNumberChanged) self.ui.rowsSpinBox.valueChanged.connect(self.onRowsNumberChanged) self.ui.colsSpinBox.editingFinished.connect(self.onColsNumberEdited) self.ui.rowsSpinBox.editingFinished.connect(self.onRowsNumberEdited) self.ui.thresholdSpinBox.valueChanged.connect(self.thresholdDraw) self.ui.maxValueSpinBox.valueChanged.connect(self.thresholdDraw) self.ui.thresholdTypeComboBox.currentIndexChanged.connect(self.thresholdDraw) self.ui.thresholdSpinBox.editingFinished.connect(self.thresholdDraw) self.ui.maxValueSpinBox.editingFinished.connect(self.thresholdDraw) self.ui.dpSpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.minDistSpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.param1SpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.param2SpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.minRadiusSpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.maxRadiusSpinBox.valueChanged.connect(self.houghCirclesDraw) self.ui.dpSpinBox.editingFinished.connect(self.houghCirclesDraw) self.ui.minDistSpinBox.editingFinished.connect(self.houghCirclesDraw) self.ui.param1SpinBox.editingFinished.connect(self.houghCirclesDraw) self.ui.param2SpinBox.editingFinished.connect(self.houghCirclesDraw) self.ui.minRadiusSpinBox.editingFinished.connect(self.houghCirclesDraw) self.ui.maxRadiusSpinBox.editingFinished.connect(self.houghCirclesDraw) def thresholdDraw(self, value=None): tmp = CreateMat(self.orig.cols, self.orig.rows, self.orig.type) Threshold(self.orig, tmp, self.ui.thresholdSpinBox.value(), self.ui.maxValueSpinBox.value(), self.ui.thresholdTypeComboBox.currentIndex()) showMat(tmp, self.view) def houghCirclesDraw(self, value=None): storage = CreateMat(self.orig.width, 1, CV_32FC3) circles = HoughCircles(self.orig, storage, CV_HOUGH_GRADIENT, self.ui.dpSpinBox.value(), self.ui.minDistSpinBox.value(), self.ui.param1SpinBox.value(), self.ui.param2SpinBox.value(), self.ui.minRadiusSpinBox.value(), self.ui.maxRadiusSpinBox.value()) if not circles: self.log.appendPlainText('No circles') tmp = CreateMat(self.orig.cols, self.orig.rows, self.orig.type) for (x, y, radius) in circles: Circle(tmp, (x, y), radius, white, thickness=3, lineType=8, shift=0) def onColsNumberChanged(self, value): tmp = scaleMat(self.orig, value / float(self.orig.cols)) self.ui.rowsSpinBox.valueChanged.disconnect(self.onRowsNumberChanged) self.ui.rowsSpinBox.setValue(tmp.rows) self.ui.rowsSpinBox.valueChanged.connect(self.onRowsNumberChanged) showMat(tmp, self.view) def onRowsNumberChanged(self, value): tmp = scaleMat(self.orig, value / float(self.orig.rows)) self.ui.colsSpinBox.valueChanged.disconnect(self.onColsNumberChanged) self.ui.colsSpinBox.setValue(tmp.cols) self.ui.colsSpinBox.valueChanged.connect(self.onColsNumberChanged) showMat(tmp, self.view) def onColsNumberEdited(self): self.ui.colsSpinBox.valueChanged.emit(self.ui.colsSpinBox.value()) def onRowsNumberEdited(self): self.ui.rowsSpinBox.valueChanged.emit(self.ui.rowsSpinBox.value())