Ask Your Question

venky's profile - activity

2015-08-10 05:15:43 -0600 received badge  Student (source)
2012-12-17 05:16:40 -0600 answered a question How to detect the missing part on electronic board

Hi, If everything is exactly the same and with the same illumination and exact localization, you could simply take the difference between the two ROI to check the missing part. Only if you show some examples we can help/suggest some solutions, otherwise our answers would be blind.

Thanks venky

2012-12-17 04:35:18 -0600 answered a question Gaps in canny-detected edges

Hi, One option may be to use the laplacian option in Canny Canny( InputArray image, OutputArray edges, double threshold1, double threshold2, int apertureSize=3, bool L2gradient=false ); make the L2gradient=true and check the result out.

If possible try to check if the Matlab canny detector gives the same result. As suggested by Daniil Osokin you could use find contours as an alternate if you have only Binary images.

Thanks Venky

2012-12-05 06:19:22 -0600 commented answer Is this a bug or not about filter2D?

I hope the image and ni vision toolbox does not do any other tricks to get a better result. I am also not sure if you have the same kernal for opencv and imagej and ni vision, So it will be very difficult for me to comment. I have used filter 2D and I got the same response when i cross checked with Matlab.

2012-12-05 06:14:07 -0600 commented answer CascadeClassifier.detectMultiScale takes a minute! Why?

Nice to hear that, so you have solved the problem now.

2012-12-05 06:08:48 -0600 answered a question Is this a bug or not about filter2D?

Hi, It looks quite similar to me the final response between the two. Might be the values are scaled or normalized in the output in one case and the other one is saturated. Check the output values out, and try to normalize it by min and max value in the image and then compare the two results. Thanks Venky

2012-11-29 15:57:28 -0600 received badge  Supporter (source)
2012-11-29 15:38:24 -0600 answered a question CascadeClassifier.detectMultiScale takes a minute! Why?

Hi, Looks like you have too many detections, and you have not mentioned what is the cascade architecture and how many features you are using at each stage. Probably you need to change the threshold of the classifier. You wont realise, since grouping of rectangles will finally give you only some detection windows Thanks Venky

2012-11-28 11:28:52 -0600 commented answer Error with Contour functions in OpenCV 2.4.3

Might be there is a bug in the newer version. I also faced problem while using CascadeCalssifier::setimage() results in segmentation fault. The documentation and the implementation does not match (after I checked objdetect.hpp). I suggest for you to have a look in the internal working of the function/class. Hope it helps.

2012-11-28 07:29:25 -0600 commented answer cascadeclassifier value

Thanks, I will also look into more detail using levelweights. It sounds interesting. I need to spend more time hacking the code now. :) By the way did you manage to use CascadeClassifier::Setiamge and CascadeClassifier::runat by any chance...?

2012-11-28 03:18:24 -0600 answered a question Error with Contour functions in OpenCV 2.4.3

If it supports only 8bit channel, you can use "convertTo" command to do it. Check for "convertTo" command in OpenCV. Hope it helps you a bit. Thanks Venky

2012-11-28 03:15:06 -0600 answered a question cascadeclassifier value

Hi, You need to write a hack for it. I am actually trying to evaluate at only one location using ::runat, but unfortunately, in the newer version of OpenCV it looks bit more complicated. Somethings are not straight forward.

Check in haar.cpp located in /OpenCV-2.4.3/modules/objdetect/src/haar.cpp and search for "runat", and you will get an idea on how to proceed.

I am not sure if you get the probability of true detection but you get a response > 0 indicating that a face is detected. I hope the above answer helps you a bit.

Thanks Venky

2012-11-27 08:22:42 -0600 commented answer setimage in CascadeClassifier

Hi, Thanks for the suggestions. I am using haar cascade classifier and was actually looking at haar.cpp where finally the evaluation takes place. Since, I have to be careful at evaluating the performance (speed, and accuracy) of different approaches, I need to probably modify haar.cpp or write a different class to reach my objective. I just did a quick experiment of using detectMultiScale() with fixed size (min=max), at say random 1000 locations and the result: it took a lot of time compared to processing the full image at one go.

After loading the CascadeClassifier, I call setimage and I get segmentation fault. The sequence of calls are shown below: CascadeClassifier cascade; cascade.load(cascadename); cascade.setimage(gray);

I will go in detail haar.cpp and other files.

2012-11-27 06:50:03 -0600 commented answer Camera capture in background

Thank franute for your comment. I am no expert for programming on Android devices, but would like to learn sometime (Currently interested in basic computer vision problems, and probably learning using large scale data). Thanks

2012-11-27 06:36:39 -0600 received badge  Editor (source)
2012-11-27 06:31:12 -0600 received badge  Nice Answer (source)
2012-11-27 06:30:33 -0600 answered a question CascadeClassifier load crash

hi, Check if the file exists actually in the folder. if ( !cascade.load ( cascadeName ) ) { cerr << "ERROR: Could not load classifier cascade" << endl; cerr << "Usage: facedetect [--cascade=<cascade_path>]\n" " [--nested-cascade[=nested_cascade_path]]\n" " [--scale[=<image scale="">\n" " [filename|camera_index]\n" << endl ; return -1; }

Thanks Venky

2012-11-27 05:28:54 -0600 received badge  Teacher (source)
2012-11-27 05:16:22 -0600 answered a question Camera capture in background

Hi, I donot know which android phone you are using but a recent advertisement for Galaxy S3, shows that you can run two applications side by side, which might be interest for you. I am guessing that it might be the OS that will not allow you to do something in the background. Hope the above helps in some way. Thanks Venky

2012-11-27 05:12:13 -0600 answered a question OpenCV Distance Metrics

Hi, I am guessing/think the distance which it is showing is the distance between the two descriptors (vectors) and not the pixel location. Note: I have not used any of the functions above. Thanks Venky

2012-11-27 05:08:07 -0600 answered a question How to get the best detection for an object

Hi, I think what the algorithm does is it finds the first response of the face and returns you the bounding box. So one approach to get a better localization would be to use the first returned bounding box, and then use this region of interest ROI to localize it better using a proper search. Hope this could reduce the time consumed to detect a face.

If the face is big in size that you want to detect then setting to 1.3 instead of 1.2 could also help a bit. I donot know for what application (Face recognition) that you are going to use it for, so it might depend on that finally, if you want to have better localization or just know that there is a face. Thanks

2012-11-27 05:00:11 -0600 answered a question LBP based Face Detection

Hi, I have trained LBP classifiers with my own code, and not using the OpenCV version. I have used nearly 10,000 face images in my training set. The negative patterns are collected on the fly after each stage. I had to give more that 10,000 images with no faces, otherwise the later stages were not able to find the false positives. The number of features for each stage that I used were, 5, 10, 15, 25, 50, and the resulting classifier was very good, comparable to other detectors available.

You need to check the number of features given to each stage, and also you might require many more negative image files. Check modified LBP and extended LBP papers if you want to have a better feel for LBP features and face detection.

2012-11-27 04:31:00 -0600 commented answer setimage in CascadeClassifier

Hi, I am trying to evaluate the face detector at only one location. If you look at objdetect.hpp, and the documentation for CascadeClassfier::setimage, there is some difference. According to the documentation, and the implementation the member functions are protected, and cannot be accessed. I have looked at Face recognition, and it is not what I need currently. I know that giving the ROI is one way to do it, but a simple check for time consumed to do this way shows that it take a lot of time. I need a way to evaluate a single window at a time.

2012-11-26 10:42:45 -0600 asked a question setimage in CascadeClassifier

I would like to know how to evaluate face detector at a particular location. I see that there is CascadeClassifier::Setimage option, but I get segmentation fault when I try to use it.

I looked at the objdetect.hpp, and found that the ::Setimage option as described in OpenCV documentation page, is actually in protected mode rather than public. Also I see that ::runat is protected. I think there is some error in the way it is currently done, or I may be wrong.

I am trying to hack a bit into the detection code. Till then If someone has an idea or can give an example file on how to use it efficiently, Please let me know.