Line 15... |
Line 15... |
15 |
qRegisterMetaType<SMCalibrationSet>("SMCalibrationSet");
|
15 |
qRegisterMetaType<SMCalibrationSet>("SMCalibrationSet");
|
16 |
qRegisterMetaType<SMCalibrationParameters>("SMCalibrationParameters");
|
16 |
qRegisterMetaType<SMCalibrationParameters>("SMCalibrationParameters");
|
17 |
qRegisterMetaTypeStreamOperators<SMCalibrationParameters>("SMCalibrationParameters");
|
17 |
qRegisterMetaTypeStreamOperators<SMCalibrationParameters>("SMCalibrationParameters");
|
18 |
qRegisterMetaType< std::vector<SMCalibrationSet> >("std::vector<SMCalibrationSet>");
|
18 |
qRegisterMetaType< std::vector<SMCalibrationSet> >("std::vector<SMCalibrationSet>");
|
19 |
qRegisterMetaType<SMFrameSequence>("SMFrameSequence");
|
19 |
qRegisterMetaType<SMFrameSequence>("SMFrameSequence");
|
- |
|
20 |
qRegisterMetaType<pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr>("pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr");
|
20 |
|
21 |
|
21 |
// Restore geometry
|
22 |
// Restore geometry
|
22 |
this->restoreGeometry(settings.value("geometry/mainwindow").toByteArray());
|
23 |
this->restoreGeometry(settings.value("geometry/mainwindow").toByteArray());
|
23 |
this->restoreState(settings.value("state/mainwindow").toByteArray());
|
24 |
this->restoreState(settings.value("state/mainwindow").toByteArray());
|
24 |
|
25 |
|
Line 315... |
Line 316... |
315 |
for(int i=0; i<frameSequence.frames0.size(); i++){
|
316 |
for(int i=0; i<frameSequence.frames0.size(); i++){
|
316 |
QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
|
317 |
QTreeWidgetItem* subItem = new QTreeWidgetItem(item);
|
317 |
subItem->setText(0, QString("frames %1").arg(i));
|
318 |
subItem->setText(0, QString("frames %1").arg(i));
|
318 |
subItem->setData(0, Qt::UserRole, QPoint(idx, i));
|
319 |
subItem->setData(0, Qt::UserRole, QPoint(idx, i));
|
319 |
}
|
320 |
}
|
- |
|
321 |
|
- |
|
322 |
ui->reconstructButton->setEnabled(true);
|
320 |
}
|
323 |
}
|
321 |
|
324 |
|
322 |
void SMScanner::on_captureTreeWidget_itemSelectionChanged(){
|
325 |
void SMScanner::on_captureTreeWidget_itemSelectionChanged(){
|
323 |
|
326 |
|
324 |
// if selection is just cleared
|
327 |
// if selection is just cleared
|
Line 386... |
Line 389... |
386 |
cv::cvtColor(captureData[i].frames1[j], frameBGR, CV_RGB2BGR);
|
389 |
cv::cvtColor(captureData[i].frames1[j], frameBGR, CV_RGB2BGR);
|
387 |
cv::imwrite(fileName.toStdString(), frameBGR);
|
390 |
cv::imwrite(fileName.toStdString(), frameBGR);
|
388 |
}
|
391 |
}
|
389 |
}
|
392 |
}
|
390 |
}
|
393 |
}
|
- |
|
394 |
|
- |
|
395 |
void SMScanner::on_reconstructButton_clicked(){
|
- |
|
396 |
|
- |
|
397 |
// // set checked flags
|
- |
|
398 |
// for(int i=0; i<captureData.size(); i++){
|
- |
|
399 |
// captureData[i].checked = (ui->captureTreeWidget->item(i)->checkState() == Qt::Checked);
|
- |
|
400 |
// }
|
- |
|
401 |
|
- |
|
402 |
|
- |
|
403 |
// Set up reconstruction thread
|
- |
|
404 |
reconstructionWorker = new SMReconstructionWorker;
|
- |
|
405 |
reconstructionWorkerThread = new QThread(this);
|
- |
|
406 |
reconstructionWorkerThread->setObjectName("reconstructionWorkerThread");
|
- |
|
407 |
reconstructionWorker->moveToThread(reconstructionWorkerThread);
|
- |
|
408 |
reconstructionWorkerThread->start();
|
- |
|
409 |
|
- |
|
410 |
// Connections
|
- |
|
411 |
connect(reconstructionWorker, SIGNAL(newPointCloud(pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr)), this, SLOT(onNewPointCloud(pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr)));
|
- |
|
412 |
connect(reconstructionWorker, SIGNAL(done()), reconstructionWorkerThread, SLOT(quit()));
|
- |
|
413 |
connect(reconstructionWorker, SIGNAL(done()), reconstructionWorker, SLOT(deleteLater()));
|
- |
|
414 |
|
- |
|
415 |
// Start reconstructing
|
- |
|
416 |
QMetaObject::invokeMethod(reconstructionWorker, "reconstruct", Q_ARG(std::vector<SMFrameSequence>, captureData));
|
- |
|
417 |
|
- |
|
418 |
}
|
- |
|
419 |
|
- |
|
420 |
void SMScanner::onNewPointCloud(pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr pc){
|
- |
|
421 |
|
- |
|
422 |
SMPointCloud smCloud;
|
- |
|
423 |
//smCloud.pointCloud = pc;
|
- |
|
424 |
pointCloudData.push_back(smCloud);
|
- |
|
425 |
|
- |
|
426 |
ui->pointCloudWidget->updatePointCloud(pc);
|
- |
|
427 |
}
|