Subversion Repositories seema-scanner

Rev

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

Rev 182 Rev 185
Line 136... Line 136...
136
        cv::Mat magnitude;
136
        cv::Mat magnitude;
137
        cv::magnitude(F0Secondary[i*2 + 2], F0Secondary[i*2 + 3], magnitude);
137
        cv::magnitude(F0Secondary[i*2 + 2], F0Secondary[i*2 + 3], magnitude);
138
        cv::add(energy0Secondary, magnitude, energy0Secondary, cv::noArray(), CV_32F);
138
        cv::add(energy0Secondary, magnitude, energy0Secondary, cv::noArray(), CV_32F);
139
    }
139
    }
140
 
140
 
-
 
141
    #ifdef QT_DEBUG
-
 
142
        cvtools::writeMat(up0Primary, "up0Primary.mat", "up0Primary");
-
 
143
        cvtools::writeMat(up0Secondary, "up0Secondary.mat", "up0Secondary");
-
 
144
        cvtools::writeMat(up0Equivalent, "up0Equivalent.mat", "up0Equivalent");
-
 
145
        cvtools::writeMat(up0, "up0.mat", "up0");
-
 
146
        cvtools::writeMat(amplitude0, "amplitude0.mat", "amplitude0");
-
 
147
        cvtools::writeMat(energy0Primary, "energy0Primary.mat", "energy0Primary");
-
 
148
        cvtools::writeMat(energy0Secondary, "energy0Secondary.mat", "energy0Secondary");
-
 
149
    #endif
-
 
150
 
141
    // Decode camera1
151
    // Decode camera1
142
    std::vector<cv::Mat> frames1Primary(frames1Rect.begin()+2, frames1Rect.begin()+2+nStepsPrimary);
152
    std::vector<cv::Mat> frames1Primary(frames1Rect.begin()+2, frames1Rect.begin()+2+nStepsPrimary);
143
    std::vector<cv::Mat> frames1Secondary(frames1Rect.begin()+2+nStepsPrimary, frames1Rect.end());
153
    std::vector<cv::Mat> frames1Secondary(frames1Rect.begin()+2+nStepsPrimary, frames1Rect.end());
144
 
154
 
145
    std::vector<cv::Mat> F1Primary = getDFTComponents(frames1Primary);
155
    std::vector<cv::Mat> F1Primary = getDFTComponents(frames1Primary);
Line 155... Line 165...
155
    cv::Mat up1 = unwrapWithCue(up1Primary, up1Equivalent, (float)screenCols/nPeriodsPrimary);
165
    cv::Mat up1 = unwrapWithCue(up1Primary, up1Equivalent, (float)screenCols/nPeriodsPrimary);
156
    up1 *= screenCols/(2.0*pi);
166
    up1 *= screenCols/(2.0*pi);
157
    cv::Mat amplitude1;
167
    cv::Mat amplitude1;
158
    cv::magnitude(F1Primary[2], -F1Primary[3], amplitude1);
168
    cv::magnitude(F1Primary[2], -F1Primary[3], amplitude1);
159
 
169
 
160
    #ifdef Q_DEBUG
-
 
161
        cvtools::writeMat(up0Primary, "up0Primary.mat", "up0Primary");
-
 
162
        cvtools::writeMat(up0Secondary, "up0Secondary.mat", "up0Secondary");
-
 
163
        cvtools::writeMat(up0Equivalent, "up0Equivalent.mat", "up0Equivalent");
-
 
164
        cvtools::writeMat(up0, "up0.mat", "up0");
-
 
165
        cvtools::writeMat(amplitude0, "amplitude0.mat", "amplitude0");
-
 
166
    #endif
-
 
167
 
-
 
168
    // Collected signal energy at higher frequencies
170
    // Collected signal energy at higher frequencies
169
    cv::Mat energy1Primary(frameRectRows, frameRectCols, CV_32F, cv::Scalar(0.0));
171
    cv::Mat energy1Primary(frameRectRows, frameRectCols, CV_32F, cv::Scalar(0.0));
170
    for(unsigned int i=0; i<nStepsPrimary-1; i++){
172
    for(unsigned int i=0; i<nStepsPrimary-1; i++){
171
        cv::Mat magnitude;
173
        cv::Mat magnitude;
172
        cv::magnitude(F1Primary[i*2 + 2], F1Primary[i*2 + 3], magnitude);
174
        cv::magnitude(F1Primary[i*2 + 2], F1Primary[i*2 + 3], magnitude);
Line 178... Line 180...
178
        cv::Mat magnitude;
180
        cv::Mat magnitude;
179
        cv::magnitude(F1Secondary[i*2 + 2], F1Secondary[i*2 + 3], magnitude);
181
        cv::magnitude(F1Secondary[i*2 + 2], F1Secondary[i*2 + 3], magnitude);
180
        cv::add(energy1Secondary, magnitude, energy1Secondary, cv::noArray(), CV_32F);
182
        cv::add(energy1Secondary, magnitude, energy1Secondary, cv::noArray(), CV_32F);
181
    }
183
    }
182
 
184
 
-
 
185
    #ifdef QT_DEBUG
-
 
186
        cvtools::writeMat(up1, "up1.mat", "up1");
-
 
187
    #endif
-
 
188
 
183
    // color debayer and remap
189
    // color debayer and remap
184
    cv::Mat color0, color1;
190
    cv::Mat color0, color1;
185
    cv::cvtColor(frames0[0], color0, CV_BayerBG2RGB);
191
    cv::cvtColor(frames0[0], color0, CV_BayerBG2RGB);
186
    cv::remap(color0, color0, map0X, map0Y, CV_INTER_LINEAR);
192
    cv::remap(color0, color0, map0X, map0Y, CV_INTER_LINEAR);
187
 
193
 
188
    cv::cvtColor(frames1[0], color1, CV_BayerBG2RGB);
194
    cv::cvtColor(frames1[0], color1, CV_BayerBG2RGB);
189
    cv::remap(color1, color1, map1X, map1Y, CV_INTER_LINEAR);
195
    cv::remap(color1, color1, map1X, map1Y, CV_INTER_LINEAR);
190
 
196
 
191
    #ifdef Q_DEBUG
197
    #ifdef QT_DEBUG
192
        cvtools::writeMat(color0, "color0.mat", "color0");
198
        cvtools::writeMat(color0, "color0.mat", "color0");
193
        cvtools::writeMat(color1, "color1.mat", "color1");
199
        cvtools::writeMat(color1, "color1.mat", "color1");
194
    #endif
200
    #endif
195
 
201
 
196
    // Occlusion masks
202
    // Occlusion masks
Line 223... Line 229...
223
 
229
 
224
//    cv::Mat edges1;
230
//    cv::Mat edges1;
225
//    cv::Sobel(up1, edges1, -1, 1, 1, 5);
231
//    cv::Sobel(up1, edges1, -1, 1, 1, 5);
226
//    occlusion1 = occlusion1 & (abs(edges1) < 150);
232
//    occlusion1 = occlusion1 & (abs(edges1) < 150);
227
 
233
 
228
    #ifdef Q_DEBUG
234
    #ifdef QT_DEBUG
229
        cvtools::writeMat(occlusion1, "occlusion1.mat", "occlusion1");
235
        cvtools::writeMat(occlusion0, "occlusion0.mat", "occlusion0");
230
        cvtools::writeMat(occlusion1, "occlusion1.mat", "occlusion1");
236
        cvtools::writeMat(occlusion1, "occlusion1.mat", "occlusion1");
231
    #endif
237
    #endif
232
 
238
 
233
    // Match phase maps
239
    // Match phase maps
234
 
240