Subversion Repositories seema-scanner

Rev

Rev 28 | Rev 30 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 28 Rev 29
Line 105... Line 105...
105
 
105
 
106
void SMScanner::onReceiveCalibrationSet(SMCalibrationSet calibrationSet){
106
void SMScanner::onReceiveCalibrationSet(SMCalibrationSet calibrationSet){
107
    calibrationData.push_back(calibrationSet);
107
    calibrationData.push_back(calibrationSet);
108
 
108
 
109
    // Add identifier to list
109
    // Add identifier to list
110
    QListWidgetItem* item = new QListWidgetItem(QString("Set %1 -- %2 deg").arg(ui->calibrationListWidget->count()).arg(calibrationSet.rotationAngle), ui->calibrationListWidget);
110
    QListWidgetItem* item = new QListWidgetItem(QString("Calibration Set %1 -- %2 deg").arg(ui->calibrationListWidget->count()).arg(calibrationSet.rotationAngle), ui->calibrationListWidget);
111
    item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
111
    item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
112
    item->setCheckState(Qt::Checked);
112
    item->setCheckState(Qt::Checked);
113
    ui->calibrationListWidget->addItem(item);
113
    ui->calibrationListWidget->addItem(item);
114
 
114
 
115
    // Set enabled checkmark
115
    // Set enabled checkmark
Line 117... Line 117...
117
        ui->calibrateButton->setEnabled(true);
117
        ui->calibrateButton->setEnabled(true);
118
}
118
}
119
 
119
 
120
void SMScanner::on_calibrateButton_clicked(){
120
void SMScanner::on_calibrateButton_clicked(){
121
 
121
 
-
 
122
    // disable ui elements
-
 
123
    ui->calibrateButton->setEnabled(false);
-
 
124
    ui->calibrationFrame->setEnabled(false);
122
 
125
 
123
    // set checked flags
126
    // set checked flags
124
    for(int i=0; i<calibrationData.size(); i++){
127
    for(int i=0; i<calibrationData.size(); i++){
125
        calibrationData[i].checked = (ui->calibrationListWidget->item(i)->checkState() == Qt::Checked);
128
        calibrationData[i].checked = (ui->calibrationListWidget->item(i)->checkState() == Qt::Checked);
126
    }
129
    }
Line 135... Line 138...
135
    calibrationWorker->moveToThread(captureWorkerThread);
138
    calibrationWorker->moveToThread(captureWorkerThread);
136
    calibrationWorkerThread->start();
139
    calibrationWorkerThread->start();
137
 
140
 
138
    // Connections
141
    // Connections
139
    connect(calibrationWorker, SIGNAL(newSetProcessed(int)), this, SLOT(onCalibrationSetProcessed(int)));
142
    connect(calibrationWorker, SIGNAL(newSetProcessed(int)), this, SLOT(onCalibrationSetProcessed(int)));
140
    connect(calibrationWorker, SIGNAL(newFrameResult(int,int,cv::Mat)), this, SLOT(onCalibrationFrameResult(int,int,cv::Mat)));
143
    connect(calibrationWorker, SIGNAL(newFrameResult(int,int,bool,cv::Mat)), this, SLOT(onCalibrationFrameResult(int,int,bool,cv::Mat)));
141
    connect(calibrationWorker, SIGNAL(done()), this, SLOT(onCalibrationDone()));
144
    connect(calibrationWorker, SIGNAL(done()), this, SLOT(onCalibrationDone()));
142
    connect(calibrationWorker, SIGNAL(done()), calibrationWorkerThread, SLOT(quit()));
145
    connect(calibrationWorker, SIGNAL(done()), calibrationWorkerThread, SLOT(quit()));
143
    connect(calibrationWorker, SIGNAL(done()), calibrationWorker, SLOT(deleteLater()));
146
    connect(calibrationWorker, SIGNAL(done()), calibrationWorker, SLOT(deleteLater()));
144
 
147
 
145
    // Start capturing
148
    // Start capturing
Line 153... Line 156...
153
}
156
}
154
 
157
 
155
void SMScanner::onCalibrationDone(){
158
void SMScanner::onCalibrationDone(){
156
 
159
 
157
    std::cout << "Calibration done!" << std::endl;
160
    std::cout << "Calibration done!" << std::endl;
-
 
161
    ui->calibrateButton->setEnabled(true);
-
 
162
    ui->calibrationFrame->setEnabled(true);
158
 
163
 
159
}
164
}
160
 
165
 
161
void SMScanner::on_calibrationListWidget_itemSelectionChanged(){
166
void SMScanner::on_calibrationListWidget_itemSelectionChanged(){
162
 
167
 
Line 181... Line 186...
181
        ui->calibrationCamera1Widget->showImageCV(calibrationData[currentRow].frame1);
186
        ui->calibrationCamera1Widget->showImageCV(calibrationData[currentRow].frame1);
182
 
187
 
183
//     std::cout << "on_calibrationListWidget_itemSelectionChanged" << std::endl;
188
//     std::cout << "on_calibrationListWidget_itemSelectionChanged" << std::endl;
184
}
189
}
185
 
190
 
186
void SMScanner::onCalibrationFrameResult(int idx, int camID, cv::Mat result){
191
void SMScanner::onCalibrationFrameResult(int idx, int camID, bool success, cv::Mat result){
187
 
192
 
188
    std::cout << "onCalibrationFrameResult " << idx << camID << std::endl;
193
//    std::cout << "onCalibrationFrameResult " << idx << camID << std::endl;
189
 
194
 
-
 
195
    if(!success)
-
 
196
        ui->calibrationListWidget->item(idx)->setCheckState(Qt::Unchecked);
-
 
197
    else {
190
    if(camID == 0)
198
        if(camID == 0)
191
        calibrationData[idx].frame0Result = result;
199
            calibrationData[idx].frame0Result = result;
192
    else if(camID == 1)
200
        else if(camID == 1)
193
        calibrationData[idx].frame1Result = result;
201
            calibrationData[idx].frame1Result = result;
-
 
202
    }
194
 
203
 
195
}
204
}
196
 
205
 
197
void SMScanner::on_singleCaptureButton_clicked(){
206
void SMScanner::on_singleCaptureButton_clicked(){
198
 
207