cvCircle(gimg, a, 3, CV_RGB(0, 0, 0), -1, 16, 0);
angle = atan((double)a.x / 824);
angle = (180 / M_PI) * angle;
- printf("Detected code: x=%i y=%i - angle %i\n", a.x, a.y, (int)angle);
+ //printf("Detected code: x=%i y=%i - angle %i\n", a.x, a.y, (int)angle);
} else {
angle = -1;
}
i8angle = (int8_t)angle;
}
+ printf("detected codes: %d\n", codesCount);
cvReleaseImage(&lineImg);
-
return codesCount;
}
if ((ret = recognizeMode_processKeys(roi_frame)) != MODE_RECOGNIZE)
return ret;
+
+ ret = 0;
+
+ for (int i = 0; i < 5; i++) {
+ //get one frame from camera (do not release!)
+ frame = cvQueryFrame(capture);
+
+ if (!frame) {
+ fprintf(stderr, "NULL frame\n");
+ usleep(100*1000);
+ continue;
+ } else if (orte.camera_result.error & camera_ERR_NO_FRAME) {
+ orte.camera_result.error &= ~camera_ERR_NO_FRAME;
+ ORTEPublicationSend(orte.publication_camera_result);
+ }
+
+ // set region of interest on captured image
+ cvSetImageROI(frame, *roi);
- //get one frame from camera (do not release!)
- frame = cvQueryFrame(capture);
-
- if (!frame) {
- fprintf(stderr, "NULL frame\n");
- usleep(100*1000);
- continue;
- } else if (orte.camera_result.error & camera_ERR_NO_FRAME) {
- orte.camera_result.error &= ~camera_ERR_NO_FRAME;
- ORTEPublicationSend(orte.publication_camera_result);
- }
-
- // set region of interest on captured image
- cvSetImageROI(frame, *roi);
-
- // copy ROI part of captured image to roi_frame and convert to grayscale
- cvCvtColor(frame, roi_frame, CV_BGR2GRAY);
+ // copy ROI part of captured image to roi_frame and convert to grayscale
+ cvCvtColor(frame, roi_frame, CV_BGR2GRAY);
- //TODO call image processing (do something useful with the image, FFT atc.)
- ret = recognize(roi_frame);
+ //TODO call image processing (do something useful with the image, FFT atc.)
+ ret += recognize(roi_frame);
- displayFrames(WINDOW_ORIG, frame);
- displayFrames(WINDOW_PROD, roi_frame);
+ displayFrames(WINDOW_ORIG, frame);
+ displayFrames(WINDOW_PROD, roi_frame);
+ }
// publish results
+ printf("return: %d\n", ret);
orte.camera_result.target_valid = ret;
orte.camera_result.data_valid = true;
ORTEPublicationSend(orte.publication_camera_result);