32 m_greaterThanCB = NULL;
33 m_lessErrorEdit = NULL;
34 m_greaterErrorEdit = NULL;
37 QLabel *label =
new QLabel(
"Registration Pixel Errors");
38 m_lessThanCB =
new QCheckBox(
"Less than");
39 m_lessErrorEdit =
new QLineEdit();
40 m_greaterThanCB =
new QCheckBox(
"Greater than");
41 m_greaterErrorEdit =
new QLineEdit();
42 QLabel *pixels =
new QLabel(
"pixels");
43 QLabel *pad =
new QLabel();
45 m_lessThanCB->setChecked(
false);
46 m_lessErrorEdit->setEnabled(
false);
47 m_greaterThanCB->setChecked(
true);
48 m_greaterErrorEdit->setEnabled(
true);
50 connect(m_lessThanCB, SIGNAL(clicked()),
this, SLOT(
clearEdit()));
51 connect(m_greaterThanCB, SIGNAL(clicked()),
this, SLOT(
clearEdit()));
54 QGridLayout *gridLayout =
new QGridLayout();
55 gridLayout->addWidget(label, 0, 0, 1, 2);
56 gridLayout->addWidget(m_lessThanCB, 1, 0, 1, 2);
57 gridLayout->addWidget(m_lessErrorEdit, 2, 0);
58 gridLayout->addWidget(pixels, 2, 1);
59 gridLayout->addWidget(m_greaterThanCB, 3, 0, 1, 2);
60 gridLayout->addWidget(m_greaterErrorEdit, 4, 0);
61 gridLayout->addWidget(pixels, 4, 1);
62 gridLayout->addWidget(pad, 5, 0);
63 gridLayout->setRowStretch(5, 50);
64 this->setLayout(gridLayout);
89 if (controlNet() == NULL) {
90 QMessageBox::information((
QWidget *)parent(),
91 "Error",
"No points to filter");
97 if (m_lessThanCB->isChecked() && m_lessErrorEdit->text() ==
"") {
98 QMessageBox::information((
QWidget *)parent(),
99 "Error",
"Error value must be entered");
102 double greaterNum = -1.;
103 if (m_greaterThanCB->isChecked() && m_greaterErrorEdit->text() ==
"") {
104 QMessageBox::information((
QWidget *)parent(),
105 "Error",
"Error value must be entered");
110 lessNum = m_lessErrorEdit->text().toDouble();
111 greaterNum = m_greaterErrorEdit->text().toDouble();
113 QMultiMap <double, int> pointMap;
118 for (
int i = filteredPoints().size() - 1; i >= 0; i--) {
119 ControlPoint &cp = *(*controlNet())[filteredPoints()[i]];
121 double maxPixelError =
123 if (m_lessThanCB->isChecked() && m_greaterThanCB->isChecked()) {
124 if (maxPixelError < lessNum && maxPixelError > greaterNum) {
125 pointMap.insert(maxPixelError, filteredPoints()[i]);
129 filteredPoints().removeAt(i);
131 else if (m_lessThanCB->isChecked()) {
132 if (maxPixelError < lessNum) {
133 pointMap.insert(maxPixelError, filteredPoints()[i]);
137 filteredPoints().removeAt(i);
139 else if (m_greaterThanCB->isChecked()) {
140 if (maxPixelError > greaterNum) {
141 pointMap.insert(maxPixelError, filteredPoints()[i]);
145 filteredPoints().removeAt(i);
149 int filteredIndex = 0;
150 QMultiMap<double, int>::const_iterator i = pointMap.constEnd();
151 while (i != pointMap.constBegin()) {
153 filteredPoints()[filteredIndex] = i.value();
157 emit filteredListModified();
176 if (m_lessThanCB->isChecked()) {
177 m_lessErrorEdit->setEnabled(
true);
180 m_lessErrorEdit->clear();
181 m_lessErrorEdit->setEnabled(
false);
183 if (m_greaterThanCB->isChecked()) {
184 m_greaterErrorEdit->setEnabled(
true);
187 m_greaterErrorEdit->clear();
188 m_greaterErrorEdit->setEnabled(
false);