Subversion Repositories seema-scanner

Rev

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

Rev 36 Rev 41
Line 1... Line 1...
1
#include "SMCaptureWorker.h"
1
#include "SMCaptureWorker.h"
2
 
2
 
3
#include "CodecGrayCode.h"
3
#include "AlgorithmGrayCode.h"
4
#include "CodecPhaseShift.h"
4
#include "AlgorithmPhaseShift.h"
5
 
5
 
6
#include <QCoreApplication>
6
#include <QCoreApplication>
7
#include <QTime>
7
#include <QTime>
8
#include <QSettings>
8
#include <QSettings>
9
#include <QtTest/QTest>
9
#include <QtTest/QTest>
Line 44... Line 44...
44
        projector = new ProjectorOpenGL(screenNum);
44
        projector = new ProjectorOpenGL(screenNum);
45
 
45
 
46
    unsigned int screenCols, screenRows;
46
    unsigned int screenCols, screenRows;
47
    projector->getScreenRes(&screenCols, &screenRows);
47
    projector->getScreenRes(&screenCols, &screenRows);
48
 
48
 
49
    // Create encoder
49
    // Create Algorithm
50
    CodecDir dir = (CodecDir)settings.value("pattern/direction", CodecDirHorizontal).toInt();
50
    CodingDir dir = (CodingDir)settings.value("pattern/direction", CodingDirHorizontal).toInt();
51
    if(dir == CodecDirNone)
51
    if(dir == CodingDirNone)
52
        std::cerr << "SMCaptureWorker: invalid coding direction " << std::endl;
52
        std::cerr << "SMCaptureWorker: invalid coding direction " << std::endl;
53
 
53
 
54
    codec = settings.value("codec", "GrayCode").toString();
54
    codec = settings.value("codec", "GrayCode").toString();
55
    if(codec == "PhaseShift")
55
    if(codec == "PhaseShift")
56
        encoder = new EncoderPhaseShift(screenCols, screenRows, dir);
56
        algorithm = new AlgorithmPhaseShift(screenCols, screenRows, dir);
57
    else if(codec == "GrayCode")
57
    else if(codec == "GrayCode")
58
        encoder = new EncoderGrayCode(screenCols, screenRows, dir);
58
        algorithm = new AlgorithmGrayCode(screenCols, screenRows, dir);
59
    else
59
    else
60
        std::cerr << "SLScanWorker: invalid codec " << codec.toStdString() << std::endl;
60
        std::cerr << "SLScanWorker: invalid codec " << codec.toStdString() << std::endl;
61
 
61
 
62
 
62
 
63
    // Upload patterns to projector/GPU
63
    // Upload patterns to projector/GPU
64
    for(unsigned int i=0; i<encoder->getNPatterns(); i++){
64
    for(unsigned int i=0; i<algorithm->getNPatterns(); i++){
65
        cv::Mat pattern = encoder->getEncodingPattern(i);
65
        cv::Mat pattern = algorithm->getEncodingPattern(i);
66
        projector->setPattern(i, pattern.ptr(), pattern.cols, pattern.rows);
66
        projector->setPattern(i, pattern.ptr(), pattern.cols, pattern.rows);
67
    }
67
    }
68
 
68
 
69
    delay = settings.value("trigger/delay", 50).toInt();
69
    delay = settings.value("trigger/delay", 50).toInt();
70
}
70
}
Line 169... Line 169...
169
 
169
 
170
    CameraFrame frame;
170
    CameraFrame frame;
171
 
171
 
172
    SMFrameSequence frameSequence;
172
    SMFrameSequence frameSequence;
173
 
173
 
174
    for(unsigned int i=0; i<encoder->getNPatterns(); i++){
174
    for(unsigned int i=0; i<algorithm->getNPatterns(); i++){
175
 
175
 
176
        // display pattern
176
        // display pattern
177
        projector->displayPattern(i);
177
        projector->displayPattern(i);
178
 
178
 
179
        QTest::qSleep(delay);
179
        QTest::qSleep(delay);