Skip to content

Commit e8da959

Browse files
committed
Working first version
1 parent 27ebd1a commit e8da959

File tree

2 files changed

+72
-3
lines changed

2 files changed

+72
-3
lines changed

src/LatticeContainer.inc.cpp.Rt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,7 @@ CudaDeviceFunction void NodeToColor( int x, int y, int z, uchar4 *optr )
379379
if (ISFINITE(l)) {
380380

381381
l = l * 111;
382+
/*
382383
if ( (l <-111)) {r = 255; g = 255; b = 255; }
383384
if ((l >= -111) && (l < -11)) {r = 255*(-l-11)/100; g = 255; b = 255; }
384385
if ((l >= -11) && (l < -1)) {r = 0; g = (255*(-l-1))/10; b = 255; }
@@ -387,6 +388,13 @@ if (ISFINITE(l)) {
387388
if ((l >= 1) && (l < 11)) {r = 255; g = 255*(l-1)/10; b = 0; }
388389
if ((l >= 11) && (l < 111)) {r = 255; g = 255; b = 255*(l-11)/100; }
389390
if ((l >= 111) ) {r = 255; g = 255; b = 255; }
391+
*/
392+
if ( (l < -11)) {r = 255; g = 0; b = 0; }
393+
if ((l >= -11) && (l < -1)) {r = 0; g = 255*(1-(-l-1)/10); b = 0; }
394+
if ((l >= -1) && (l < 0)) {r = 255; g = 255; b = 255*(1+l); }
395+
if ((l >= 0) && (l < 1)) {r = 255; g = 255*(1-l); b = 255; }
396+
if ((l >= 1) && (l < 11)) {r = 255; g = 0; b = 255*(1-(l-1)/10); }
397+
if ((l >= 11) ) {r = 255; g = 0; b = 0; }
390398
r=r*w;
391399
g=g*w + (1-w)*255;
392400
b=b*w;

src/gui.cpp

Lines changed: 64 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)