Subversion Repositories seema-scanner

Rev

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

Rev 135 Rev 136
Line 408... Line 408...
408
 
408
 
409
    cv::Mat frameBGR;
409
    cv::Mat frameBGR;
410
    QString dirName = QFileDialog::getExistingDirectory(this, "Export calibration sets", QString());
410
    QString dirName = QFileDialog::getExistingDirectory(this, "Export calibration sets", QString());
411
    for(unsigned int i=0; i<calibrationData.size(); i++){
411
    for(unsigned int i=0; i<calibrationData.size(); i++){
412
        QString fileName = QString("%1/frame0_%2.png").arg(dirName).arg(i);
412
        QString fileName = QString("%1/frame0_%2.png").arg(dirName).arg(i);
-
 
413
 
413
        // Convert Bayer to rgb (png needs BGR order)
414
        // Convert to BGR
-
 
415
        if(calibrationData[i].frame0.channels() == 1)
414
        cv::cvtColor(calibrationData[i].frame0, frameBGR, CV_BayerBG2BGR);
416
            cv::cvtColor(calibrationData[i].frame0, frameBGR, CV_BayerBG2BGR);
-
 
417
        else
-
 
418
            cv::cvtColor(calibrationData[i].frame1, frameBGR, CV_RGB2BGR);
-
 
419
 
415
        cv::imwrite(fileName.toStdString(), frameBGR);
420
        cv::imwrite(fileName.toStdString(), frameBGR);
416
        fileName = QString("%1/frame1_%2.png").arg(dirName).arg(i);
421
        fileName = QString("%1/frame1_%2.png").arg(dirName).arg(i);
-
 
422
 
417
        // Convert Bayer to rgb (png needs BGR order)
423
        // Convert to BGR
-
 
424
        if(calibrationData[i].frame1.channels() == 1)
418
        cv::cvtColor(calibrationData[i].frame1, frameBGR, CV_BayerBG2BGR);
425
            cv::cvtColor(calibrationData[i].frame1, frameBGR, CV_BayerBG2BGR);
-
 
426
        else
-
 
427
            cv::cvtColor(calibrationData[i].frame1, frameBGR, CV_RGB2BGR);
-
 
428
 
419
        cv::imwrite(fileName.toStdString(), frameBGR);
429
        cv::imwrite(fileName.toStdString(), frameBGR);
420
        // Necessary to prevent memory pileup?
430
        // Necessary to prevent memory pileup?
421
        QCoreApplication::processEvents();
431
        QCoreApplication::processEvents();
422
    }
432
    }
423
 
433
 
Line 606... Line 616...
606
void SMScanner::on_actionImport_Parameters_triggered(){
616
void SMScanner::on_actionImport_Parameters_triggered(){
607
 
617
 
608
    QString fileName = QFileDialog::getOpenFileName(this, "Import calibration parameters", QString(), "*.xml");
618
    QString fileName = QFileDialog::getOpenFileName(this, "Import calibration parameters", QString(), "*.xml");
609
    QFileInfo info(fileName);
619
    QFileInfo info(fileName);
610
    QString type = info.suffix();
620
    QString type = info.suffix();
611
    if(type != ".xml"){
621
    if(type != "xml"){
612
        std::cerr << "Error: calibration parameters must be in .xml file." << std::endl;
622
        std::cerr << "Error: calibration parameters must be in .xml file." << std::endl;
613
        return;
623
        return;
614
    }
624
    }
615
 
625
 
616
    SMCalibrationParameters cal;
626
    SMCalibrationParameters cal;
Line 640... Line 650...
640
 
650
 
641
    for(unsigned int i=0; i<nSets; i++){
651
    for(unsigned int i=0; i<nSets; i++){
642
 
652
 
643
        SMCalibrationSet calibrationSet;
653
        SMCalibrationSet calibrationSet;
644
 
654
 
645
        QString fileName0 = QString("%1/%2.png").arg(dirName).arg(fileNames0.at(i));
655
        QString fileName0 = QString("%1/%2").arg(dirName).arg(fileNames0.at(i));
646
        calibrationSet.frame0 = cv::imread(fileName0.toStdString());
656
        calibrationSet.frame0 = cv::imread(fileName0.toStdString());
-
 
657
        cv::cvtColor(calibrationSet.frame0, calibrationSet.frame0, CV_BGR2RGB);
647
        QString fileName1 = QString("%1/%2.png").arg(dirName).arg(fileNames1.at(i));
658
        QString fileName1 = QString("%1/%2").arg(dirName).arg(fileNames1.at(i));
648
        calibrationSet.frame1 = cv::imread(fileName1.toStdString());
659
        calibrationSet.frame1 = cv::imread(fileName1.toStdString());
-
 
660
        cv::cvtColor(calibrationSet.frame1, calibrationSet.frame1, CV_BGR2RGB);
649
 
661
 
650
        int id = ui->calibrationListWidget->count();
662
        int id = ui->calibrationListWidget->count();
651
        calibrationSet.id = id;
663
        calibrationSet.id = id;
652
 
664
 
653
        calibrationData.push_back(calibrationSet);
665
        calibrationData.push_back(calibrationSet);