Ask Your Question

koshy george's profile - activity

2020-09-30 00:36:14 -0600 received badge  Student (source)
2014-03-22 20:18:00 -0600 asked a question frame coherence in feature detection

Summary:

Given an input video steam, how to we solve the problem of features not getting detected intermittently. One can possibly do a more robust feature detection. But if the input video stream is noisy or ill-illuminated, then even robust feature detection can cause intermittent failures in feature detection from frame to frame. Is there a general method where by we use the previous frame's features if detection fails for a frame? Could somebody please point me to the general direction (theory and practice) of solving this?

Specific case:

We are trying to detect a big circular object in the video stream using the code below. We employ HoughCircle-s. The code is given below. The output green circle flickers from frame to frame.

image description

   int main(int argc, char **argv) {
       VideoCapture cap(0);
       namedWindow( "video");
       bool firstWrite = true;
       for(;;) {
           Mat frame;
           cap >> frame;
           if( frame.empty() )
               break;
           Mat image, tempImage, grayImage;
           cvtColor(frame, tempImage, CV_BGR2GRAY);
           pyrDown(tempImage, grayImage, Size(frame.cols/2, frame.rows/2));
           pyrDown(frame, image, Size(frame.cols/2, frame.rows/2));
           vector<Vec3f> circles;
           HoughCircles(
               grayImage,        //input image
               circles,               //output circles
               CV_HOUGH_GRADIENT,
               1,                      //
               grayImage.rows/8,  //
               250,                        //upperThresholdForInternalCannyEdgeDetect
               50,                          //thresholdForCenterDetect
               0,                          //minRadius
               100                           //maxRadius, 
           );
           if(circles.size()>0) {
               //draw only the first circle
               Point circlePoint(  round(circles[0][0]), round(circles[0][1]));
               double circleRadius = circles[0][2];
               circle( image, circlePoint, circleRadius,  Scalar(0, 255, 0), -1, 8, 0);
               if(firstWrite) {
                   //write only one-time
                   imwrite(
                    "detected.jpg",
                    image
                   );
                   firstWrite = false;
               }
           }
           imshow("video", image);
       }
 }
2014-03-20 07:54:45 -0600 received badge  Editor (source)
2014-03-20 07:51:07 -0600 asked a question suggestion for a suitable android device

Hi, I am starting to develop opencv applications in android. (AR, object tracking, feature detection etc) Could you please suggest a suitable device (tablet preferred).?

What do you say about Nexus 7 from Google by Asus (32 GB)?

It has a tegra 3.0 chip, so should be able to support neon. It doesn't have any memory expansion slot? The price looks reasonable.

Anybody developing opencv applications in a google nexus 7?

-thanks

-koshy

2014-02-17 19:33:18 -0600 asked a question suggestion for a suitable android device

I am starting to develop opencv applications , face detection, object tracking, AR etc in android tablets. What would be a good tablet device to buy?