@@ -67,35 +67,35 @@ void VignetteCalib::displayImage(float *I, int w, int h, std::string name)
67
67
if (vmax < I[i]) vmax = I[i];
68
68
}
69
69
70
- cv:: Mat img = cv:: Mat (h,w,CV_8UC3);
70
+ Mat img = Mat (h,w,CV_8UC3);
71
71
72
72
for (int i=0 ;i<w*h;i++)
73
73
{
74
74
// isnanf? isnan?
75
- if (cvIsNaN (I[i]) == 1 ) img.at <cv:: Vec3b>(i) = cv:: Vec3b (0 ,0 ,255 );
76
- else img.at <cv:: Vec3b>(i) = cv:: Vec3b (255 *(I[i]-vmin) / (vmax-vmin),255 *(I[i]-vmin) / (vmax-vmin),255 *(I[i]-vmin) / (vmax-vmin));
75
+ if (cvIsNaN (I[i]) == 1 ) img.at <Vec3b>(i) = Vec3b (0 ,0 ,255 );
76
+ else img.at <Vec3b>(i) = Vec3b (255 *(I[i]-vmin) / (vmax-vmin),255 *(I[i]-vmin) / (vmax-vmin),255 *(I[i]-vmin) / (vmax-vmin));
77
77
}
78
78
79
79
printf (" plane image values %f - %f!\n " , vmin, vmax);
80
- cv:: imshow (name, img);
81
- cv:: imwrite (" vignetteCalibResult/plane.png" , img);
80
+ imshow (name, img);
81
+ imwrite (" vignetteCalibResult/plane.png" , img);
82
82
}
83
83
84
84
void VignetteCalib::displayImageV (float *I, int w, int h, std::string name)
85
85
{
86
- cv:: Mat img = cv:: Mat (h,w,CV_8UC3);
86
+ Mat img = Mat (h,w,CV_8UC3);
87
87
for (int i=0 ;i<w*h;i++)
88
88
{
89
89
if (cvIsNaN (I[i]) == 1 )
90
- img.at <cv:: Vec3b>(i) = cv:: Vec3b (0 ,0 ,255 );
90
+ img.at <Vec3b>(i) = Vec3b (0 ,0 ,255 );
91
91
else
92
92
{
93
93
float c = 254 *I[i];
94
- img.at <cv:: Vec3b>(i) = cv:: Vec3b (c,c,c);
94
+ img.at <Vec3b>(i) = Vec3b (c,c,c);
95
95
}
96
96
97
97
}
98
- cv:: imshow (name, img);
98
+ imshow (name, img);
99
99
}
100
100
101
101
void VignetteCalib::calib ()
@@ -104,8 +104,6 @@ void VignetteCalib::calib()
104
104
if (-1 == system (" mkdir vignetteCalibResult" )) printf (" could not delete old vignetteCalibResult folder!\n " );
105
105
106
106
// affine map from plane cordinates to grid coordinates.
107
- Mat test2 (3 ,3 ,CV_8U);
108
- Matx33f test3 (test2);
109
107
Matx33f K_p2idx = Matx33f::eye ();
110
108
Mat1f test = Mat1f::eye (3 ,3 );
111
109
K_p2idx (0 ,0 ) = _gridWidth / _facW;
@@ -120,13 +118,19 @@ void VignetteCalib::calib()
120
118
int wI = wO, hI = hO;
121
119
122
120
Ptr<aruco::DetectorParameters> parameters = aruco::DetectorParameters::create ();
123
- Ptr<aruco::Dictionary> dictionary = aruco::getPredefinedDictionary (cv:: aruco::DICT_6X6_250);
121
+ Ptr<aruco::Dictionary> dictionary = aruco::getPredefinedDictionary (aruco::DICT_6X6_250);
124
122
125
123
std::vector<float *> images;
126
124
std::vector<float *> p2imgX;
127
125
std::vector<float *> p2imgY;
128
126
129
127
float meanExposure = 0 .f ;
128
+ for (size_t i=0 ;i<imageReader->getNumImages ();i+=_imageSkip)
129
+ meanExposure+=imageReader->getExposureDuration (i);
130
+ meanExposure = meanExposure/imageReader->getNumImages ();
131
+
132
+ if (meanExposure==0 ) meanExposure = 1 ;
133
+
130
134
for (size_t i=0 ; i < imageReader->getNumImages (); ++i)
131
135
{
132
136
std::vector<int > markerIds;
@@ -205,9 +209,9 @@ void VignetteCalib::calib()
205
209
images.push_back (image);
206
210
207
211
// debug-plot.
208
- cv:: Mat dbgImg (hI, wI, CV_8UC3);
209
- for (int i =0 ;i <wI*hI;i ++)
210
- dbgImg.at <cv:: Vec3b>(i ) = cv:: Vec3b (imgRaw[i ], imgRaw[i ], imgRaw[i ]);
212
+ Mat dbgImg (hI, wI, CV_8UC3);
213
+ for (int j =0 ;j <wI*hI;j ++)
214
+ dbgImg.at <Vec3b>(j ) = Vec3b (imgRaw[j ], imgRaw[j ], imgRaw[j ]);
211
215
212
216
for (int x=0 ; x<=_gridWidth;x+=200 )
213
217
for (int y=0 ; y<=_gridHeight;y+=10 )
@@ -222,7 +226,8 @@ void VignetteCalib::calib()
222
226
int v_dT = plane2imgY[idxT]+0.5 ;
223
227
224
228
if (u_dS>=0 && v_dS >=0 && u_dS<wI && v_dS<hI && u_dT>=0 && v_dT >=0 && u_dT<wI && v_dT<hI)
225
- cv::line (dbgImg, cv::Point (u_dS, v_dS), cv::Point (u_dT, v_dT), cv::Scalar (0 ,0 ,255 ), 10 , CV_AA);
229
+ line (dbgImg, Point (u_dS, v_dS), Point (u_dT, v_dT), Scalar (0 ,0 ,255 ), 10 , LINE_AA);
230
+ // line(dbgImg, Point(u_dS, v_dS), Point(u_dT, v_dT), Scalar(0,0,255), 10, CV_AA);
226
231
}
227
232
228
233
for (int x=0 ; x<=_gridWidth;x+=10 )
@@ -238,7 +243,7 @@ void VignetteCalib::calib()
238
243
int v_dT = plane2imgY[idxT]+0.5 ;
239
244
240
245
if (u_dS>=0 && v_dS >=0 && u_dS<wI && v_dS<hI && u_dT>=0 && v_dT >=0 && u_dT<wI && v_dT<hI)
241
- cv:: line (dbgImg, cv:: Point (u_dS, v_dS), cv:: Point (u_dT, v_dT), cv:: Scalar (0 ,0 ,255 ), 10 , CV_AA );
246
+ line (dbgImg, Point (u_dS, v_dS), Point (u_dT, v_dT), Scalar (0 ,0 ,255 ), 10 , LINE_AA );
242
247
}
243
248
244
249
for (int x=0 ; x<_gridWidth;x++)
@@ -254,16 +259,16 @@ void VignetteCalib::calib()
254
259
}
255
260
}
256
261
257
- cv:: imshow (" inRaw" ,dbgImg);
262
+ imshow (" inRaw" ,dbgImg);
258
263
259
264
if (rand ()%40 ==0 )
260
265
{
261
266
char buf[1000 ];
262
- snprintf (buf,1000 ," vignetteCalibResult/img%d .png" ,i);
263
- cv:: imwrite (buf, dbgImg);
267
+ snprintf (buf,1000 ," vignetteCalibResult/img%lu .png" ,i);
268
+ imwrite (buf, dbgImg);
264
269
}
265
270
266
- cv:: waitKey (1 );
271
+ waitKey (1 );
267
272
268
273
p2imgX.push_back (plane2imgX);
269
274
p2imgY.push_back (plane2imgY);
@@ -460,19 +465,19 @@ void VignetteCalib::calib()
460
465
461
466
{
462
467
displayImageV (vignetteFactorTT, wI, hI, " VignetteSmoothed" );
463
- cv:: Mat wrap = cv:: Mat (hI, wI, CV_32F, vignetteFactorTT)*254.9 *254.9 ;
464
- cv:: Mat wrap16;
468
+ Mat wrap = Mat (hI, wI, CV_32F, vignetteFactorTT)*254.9 *254.9 ;
469
+ Mat wrap16;
465
470
wrap.convertTo (wrap16, CV_16U,1 ,0 );
466
- cv:: imwrite (" vignetteCalibResult/vignetteSmoothed.png" , wrap16);
467
- cv:: waitKey (50 );
471
+ imwrite (" vignetteCalibResult/vignetteSmoothed.png" , wrap16);
472
+ waitKey (50 );
468
473
}
469
474
{
470
475
displayImageV (vignetteFactor, wI, hI, " VignetteOrg" );
471
- cv:: Mat wrap = cv:: Mat (hI, wI, CV_32F, vignetteFactor)*254.9 *254.9 ;
472
- cv:: Mat wrap16;
476
+ Mat wrap = Mat (hI, wI, CV_32F, vignetteFactor)*254.9 *254.9 ;
477
+ Mat wrap16;
473
478
wrap.convertTo (wrap16, CV_16U,1 ,0 );
474
- cv:: imwrite (" vignetteCalibResult/vignette.png" , wrap16);
475
- cv:: waitKey (50 );
479
+ imwrite (" vignetteCalibResult/vignette.png" , wrap16);
480
+ waitKey (50 );
476
481
}
477
482
}
478
483
}
0 commit comments