Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
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())