@@ -91,6 +91,15 @@ int gui_window_implementation::calibrate() {
9191 Mat myImage, gray;
9292 Mat corn;
9393 cap >> myImage;
94+ printf (" Cam: %7lg %7lg %7lg %7lg %7lg %7lg\n " ,
95+ cap.get (CAP_PROP_BRIGHTNESS),
96+ cap.get (CAP_PROP_CONTRAST),
97+ cap.get (CAP_PROP_SATURATION),
98+ cap.get (CAP_PROP_FOCUS),
99+ cap.get (CAP_PROP_ZOOM),
100+ cap.get (CAP_PROP_AUTO_EXPOSURE)
101+ );
102+
94103 cvtColor (myImage, gray, COLOR_BGR2GRAY);
95104 bool ret = findChessboardCorners (gray, Size (board_width,board_height), corn);
96105 if (ret) {
@@ -136,6 +145,57 @@ int gui_window_implementation::calibrate() {
136145
137146 H = findHomography (object_points, corners);
138147
148+ SDL_SetRenderDrawColor (sdl_renderer, 0 , 0 , 0 , 255 );
149+ SDL_RenderClear (sdl_renderer);
150+ for (int ix = 0 ; ix<=board_width; ix++) {
151+ for (int iy = 0 ; iy<=board_height; iy++) {
152+ SDL_SetRenderDrawColor (sdl_renderer, 255 , rand () % 255 , rand () % 255 , 255 );
153+ SDL_Rect rect;
154+ rect.x = check_x[ix];
155+ rect.y = check_y[iy];
156+ rect.w = check_x[ix+1 ] - check_x[ix];
157+ rect.h = check_y[iy+1 ] - check_y[iy];
158+ SDL_RenderFillRect (sdl_renderer, &rect);
159+ }
160+ }
161+ SDL_RenderPresent ( sdl_renderer );
162+ waitKey (200 );
163+
164+ namedWindow (" R" );
165+ namedWindow (" G" );
166+ namedWindow (" B" );
167+ while (true ) {
168+ Mat camImage, myImage;
169+ cap >> camImage;
170+ warpPerspective (camImage, myImage, H, target_size,WARP_INVERSE_MAP);
171+
172+ // Vec3d vavg = 0;
173+ // for(int i=0; i<myImage.rows; i++) {
174+ // for(int j=0; j<myImage.cols; j++) {
175+ // Vec3d v = myImage.at<Vec3b>(r, c);
176+ // vavg += v;
177+ // }
178+ // }
179+ // vavg = vavg / (myImage.rows*myImage.cols);
180+ // Vec3d vavg = 0;
181+ // for(int i=0; i<myImage.rows; i++) {
182+ // for(int j=0; j<myImage.cols; j++) {
183+ // Vec3d v = myImage.at<Vec3b>(r, c);
184+ // vavg += v;
185+ // }
186+ // }
187+
188+ imshow (" Video Player" , myImage);
189+ Mat chanImage;
190+ extractChannel (myImage, chanImage, 0 ); imshow (" R" , chanImage);
191+ extractChannel (myImage, chanImage, 1 ); imshow (" G" , chanImage);
192+ extractChannel (myImage, chanImage, 2 ); imshow (" B" , chanImage);
193+ char c = (char )waitKey (1 );
194+ if (c == 27 ){
195+ break ;
196+ }
197+ }
198+
139199 return 0 ;
140200}
141201
@@ -156,6 +216,7 @@ gui_window_implementation::gui_window_implementation(int window_width_, int wind
156216 }
157217 cap.set (CAP_PROP_FRAME_WIDTH,1920 );
158218 cap.set (CAP_PROP_FRAME_HEIGHT,1080 );
219+ cap.set (CAP_PROP_AUTOFOCUS, 0 );
159220
160221
161222 // sdl_window = SDL_CreateWindow("Graphical Window", SDL_WINDOWPOS_UNDEFINED_DISPLAY(1), SDL_WINDOWPOS_UNDEFINED_DISPLAY(1), sx, sy, SDL_WINDOW_FULLSCREEN);
@@ -241,9 +302,9 @@ int gui_window_implementation::eventloop() {
241302
242303 warpPerspective (camImage, myImage, H, target_size,WARP_INVERSE_MAP);
243304
244- cvtColor (myImage, newImage, cv::COLOR_RGB2GRAY);
245- extractChannel (myImage, newImage, 0 );
246- threshold (newImage, binImage, 20 , 1 , THRESH_BINARY_INV);
305+ // cvtColor(myImage, newImage, cv::COLOR_RGB2GRAY);
306+ extractChannel (myImage, newImage, 2 );
307+ threshold (newImage, binImage, 80 , 1 , THRESH_BINARY_INV);
247308
248309 Mat stats, centroids;
249310 int nLabels = connectedComponentsWithStats (binImage, labelImage, stats, centroids);
0 commit comments