Friday, February 3, 2012

Results Update Feb 4

Tuesday, January 10, 2012

getting SURF points of any image

this post uses OPENCV 2.2 and a simple change of the extract feature will allow use on version 2.3

class atsSURF
    cv::Mat extractPoints(cv::Mat img)
        int minHessian = 500;
        cv::SurfFeatureDetector detector(minHessian);
        std::vector<cv::KeyPoint> keypoints;
        detector.detect(img,keypoints,img); //opencv 2.2
        //detector.detect(img,keypoints); //opencv 2.3

        cv::SurfDescriptorExtractor extractor;
        cv::Mat descriptor;
        thisDescriptor = descriptor;
        thisKeypoints = keypoints;

        cv::Mat outim = img;
        return outim;
    cv::Mat thisDescriptor;
    std::vector<cv::KeyPoint> thisKeypoints;

to run from the main function

int main(int argc, char* argv[])
char code = (char)-1;
atsImages im("C:/Users/Aresh/Documents/Visual Studio 2010/Projects/opencvTest/Debug/test_connectedComponent_sameColor_sameShape.jpg");
Mat img ="gray");

atsSURF mypoints;

//cv::Mat ima_gray; //in case in RGB
//cv::cvtColor(img,ima_gray,CV_BGR2GRAY); //convert to gray scale
//cv::Mat outim = mypoints.extractPoints(ima_gray);
cv::Mat outim = mypoints.extractPoints(img);
cv::imshow("SURF points", outim);
code = (char)waitKey();
 return 0;

and thats all. dont forget the SURF descriptor only accepts GRAY level images. if you feed it a colored image, it will give you the following error:

Unhandled exception at xxxxxx in opencv.exe: Microsoft C++ exception:
cv::Exception at memory location xxxxxxx

Sunday, January 1, 2012

Entropy and Gini index experiments

1. Entropy and Gini index are unique when color and shape are different
2. Entropy and Gini Index are unique (Small Difference) Color remains the same but different shape
3. Entropy and Gini Index are unique (smaller difference) Color and shape are the same Area and size

Shape and Color are the same, however entropy is unique, Gini Index is even more unique