[TASK] Parametrize hough transformation matching threshold.

This commit is contained in:
Jan Philipp Timme 2016-01-07 18:57:26 +01:00
parent 229aaf8d5d
commit 4dd5fea5aa
3 changed files with 17 additions and 7 deletions

View File

@ -59,7 +59,6 @@ class HoughMachine {
};
void run(int a_steps, int r_steps) {
this->reset();
this->x_center = this->original->width()/2;
this->y_center = this->original->height()/2;
this->n_ang = a_steps;
@ -84,9 +83,11 @@ class HoughMachine {
pixel.getHsl(&h, &s, &l);
if(this->matching_threshold > 0) {
int threshold = this->matching_threshold;
std::cout << "Comparing " << l << " < " << threshold << std::endl;
if(l < threshold) this->doPixel(u, v);
} else {
int threshold = -this->matching_threshold;
std::cout << "Comparing " << l << " > " << threshold << std::endl;
if(l > threshold) this->doPixel(u, v);
}
}

View File

@ -771,14 +771,14 @@ void ImageViewer::doUnsharpMasking(void) {
* @brief ImageViewer::runHoughTransformation
*/
void ImageViewer::runHoughTransformation(void) {
logFile << "Let's run a hough transformation!" << std::endl;
int threshold = hough_pixel_threshold->value();
logFile << "Let's run a hough transformation! Threshold is " << threshold << std::endl;
renewLogging();
HoughMachine* hm = new HoughMachine(original, working_copy);
hm->setMatchingThreshold(15);
hm->reset();
hm->setMatchingThreshold(threshold);
hm->run(256, 256);
hm->drawLines(10);
hm->drawLines(10);
delete hm;
updateImageDisplay();
}
@ -1126,7 +1126,15 @@ void ImageViewer::generateControlPanels() {
run_hough_transformation = new QPushButton("Run hough transformation!");
QObject::connect(run_hough_transformation, SIGNAL(clicked()), this, SLOT(runHoughTransformation()));
task_tab6_scrolllayout->addWidget(new QLabel("Task #6 and stuff"));
hough_pixel_threshold = new QDoubleSpinBox();
hough_pixel_threshold->setDecimals(0);
hough_pixel_threshold->setMinimum(-255);
hough_pixel_threshold->setMaximum(255);
hough_pixel_threshold->setValue(15);
task_tab6_scrolllayout->addWidget(new QLabel("Pixel threshold for hough transformation:"));
task_tab6_scrolllayout->addWidget(new QLabel("[negative value -> intensity < threshold matches]"));
task_tab6_scrolllayout->addWidget(hough_pixel_threshold);
task_tab6_scrolllayout->addWidget(run_hough_transformation);
tabWidget->addTab(task_tab6_widget, "Task #6");

View File

@ -168,6 +168,7 @@ class ImageViewer : public QMainWindow {
QScrollArea* task_tab6_scrollarea;
QVBoxLayout* task_tab6_scrolllayout;
QDoubleSpinBox* hough_pixel_threshold;
QPushButton* run_hough_transformation;
// "My" space for storing data/results