Line 400... |
Line 400... |
400 |
|
400 |
|
401 |
}
|
401 |
}
|
402 |
|
402 |
|
403 |
void SMScanner::on_actionExport_Sets_triggered(){
|
403 |
void SMScanner::on_actionExport_Sets_triggered(){
|
404 |
|
404 |
|
- |
|
405 |
cv::Mat frameBGR;
|
405 |
QString dirName = QFileDialog::getExistingDirectory(this, "Export calibration sets", QString());
|
406 |
QString dirName = QFileDialog::getExistingDirectory(this, "Export calibration sets", QString());
|
406 |
for(unsigned int i=0; i<calibrationData.size(); i++){
|
407 |
for(unsigned int i=0; i<calibrationData.size(); i++){
|
407 |
QString fileName = QString("%1/frame0_%2.png").arg(dirName).arg(i);
|
408 |
QString fileName = QString("%1/frame0_%2.png").arg(dirName).arg(i);
|
408 |
cv::Mat frameBGR;
|
- |
|
409 |
cv::cvtColor(calibrationData[i].frame0, frameBGR, CV_RGB2BGR);
|
409 |
cv::cvtColor(calibrationData[i].frame0, frameBGR, CV_RGB2BGR);
|
410 |
cv::imwrite(fileName.toStdString(), frameBGR);
|
410 |
cv::imwrite(fileName.toStdString(), frameBGR);
|
411 |
fileName = QString("%1/frame1_%2.png").arg(dirName).arg(i);
|
411 |
fileName = QString("%1/frame1_%2.png").arg(dirName).arg(i);
|
412 |
cv::cvtColor(calibrationData[i].frame1, frameBGR, CV_RGB2BGR);
|
412 |
cv::cvtColor(calibrationData[i].frame1, frameBGR, CV_RGB2BGR);
|
413 |
cv::imwrite(fileName.toStdString(), frameBGR);
|
413 |
cv::imwrite(fileName.toStdString(), frameBGR);
|
- |
|
414 |
// Necessary to prevent memory pileup?
|
- |
|
415 |
QCoreApplication::processEvents();
|
414 |
}
|
416 |
}
|
415 |
|
417 |
|
416 |
}
|
418 |
}
|
417 |
|
419 |
|
418 |
void SMScanner::on_actionExport_Sequences_triggered(){
|
420 |
void SMScanner::on_actionExport_Sequences_triggered(){
|
419 |
|
421 |
|
- |
|
422 |
cv::Mat frameBGR;
|
420 |
QString dirName = QFileDialog::getExistingDirectory(this, "Export frame sequences", QString());
|
423 |
QString dirName = QFileDialog::getExistingDirectory(this, "Export frame sequences", QString());
|
421 |
|
- |
|
422 |
for(unsigned int i=0; i<captureData.size(); i++){
|
424 |
for(unsigned int i=0; i<captureData.size(); i++){
|
423 |
QString seqDirName = QString("%1/sequence_%2").arg(dirName).arg(i);
|
425 |
QString seqDirName = QString("%1/sequence_%2").arg(dirName).arg(i);
|
424 |
if(!QDir().mkdir(seqDirName))
|
426 |
if(!QDir().mkdir(seqDirName))
|
425 |
std::cerr << "Could not create directory " << seqDirName.toStdString() << std::endl;
|
427 |
std::cerr << "Could not create directory " << seqDirName.toStdString() << std::endl;
|
426 |
for(unsigned int j=0; j<captureData[i].frames0.size(); j++){
|
428 |
for(unsigned int j=0; j<captureData[i].frames0.size(); j++){
|
427 |
QString fileName = QString("%1/frames0_%2.png").arg(seqDirName).arg(j);
|
429 |
QString fileName = QString("%1/frames0_%2.png").arg(seqDirName).arg(j);
|
428 |
cv::Mat frameBGR;
|
- |
|
429 |
cv::cvtColor(captureData[i].frames0[j], frameBGR, CV_RGB2BGR);
|
430 |
cv::cvtColor(captureData[i].frames0[j], frameBGR, CV_RGB2BGR);
|
430 |
cv::imwrite(fileName.toStdString(), frameBGR);
|
431 |
cv::imwrite(fileName.toStdString(), frameBGR);
|
- |
|
432 |
// Necessary to prevent memory pileup?
|
- |
|
433 |
QCoreApplication::processEvents();
|
431 |
}
|
434 |
}
|
432 |
for(unsigned int j=0; j<captureData[i].frames1.size(); j++){
|
435 |
for(unsigned int j=0; j<captureData[i].frames1.size(); j++){
|
433 |
QString fileName = QString("%1/frames1_%2.png").arg(seqDirName).arg(j);
|
436 |
QString fileName = QString("%1/frames1_%2.png").arg(seqDirName).arg(j);
|
434 |
cv::Mat frameBGR;
|
- |
|
435 |
cv::cvtColor(captureData[i].frames1[j], frameBGR, CV_RGB2BGR);
|
437 |
cv::cvtColor(captureData[i].frames1[j], frameBGR, CV_RGB2BGR);
|
436 |
cv::imwrite(fileName.toStdString(), frameBGR);
|
438 |
cv::imwrite(fileName.toStdString(), frameBGR);
|
- |
|
439 |
// Necessary to prevent memory pileup?
|
- |
|
440 |
QCoreApplication::processEvents();
|
437 |
}
|
441 |
}
|
438 |
}
|
442 |
}
|
439 |
}
|
443 |
}
|
440 |
|
444 |
|
441 |
void SMScanner::on_reconstructButton_clicked(){
|
445 |
void SMScanner::on_reconstructButton_clicked(){
|