120 likes | 257 Views
Harris detector. Convert image to greyscale Apply Gaussian convolution to blur the image and remove noise Calculate gradient of image in x and y direction for every pixel For each point in the image,
E N D
Harris detector Convert image to greyscale Apply Gaussian convolution to blur the image and remove noise Calculate gradient of image in x and y direction for every pixel For each point in the image, consider a 3x3 square window of pixels around that point. Compute the Harris matrix H for that point, Compute the corner strength function Choose points whose c(H) is above threshold and c(H) is local maxima in a 10x10 neighborhood. These points will be called the feature points
My simple descriptor For each feature pointsTake a 45x45 window centered at the feature pointNormalise the color of each pixels in the window Make a 9x9 window feature descriptor by applying linear weights to every 5 points and summing up the RGB values separately. The feature descriptor will contain the RGB value of the points, hence in total our feature descriptor has 9x9x3 dimensions
My simple feature descriptor: bikes 1 – bikes 2 – matching with ratio
My simple feature descriptor : bikes 1 –bikes 3 – matching with ratio
Simple descriptor numbers(testMatch results) The total error is the average Euclidean distance between a (correctly) transformed feature point in the first image and its matched feature point in the second image.
My evaluation: for (unsigned int i=0; i<f1.size(); i++) { applyHomography(f1[i].x, f1[i].y, xNew, yNew, h); if (matches[i].id > 0) { d += sqrt(pow(xNew-f2[matches[i].id-1].x,2)+pow(yNew-f2[matches[i].id-1].y,2)); n++; } } return d / n; • Your error number will be slightly different: (nInliers/nMatches) Your evaluation in skeleton code: for (unsigned int i=0; i<f1.size(); i++) { applyHomography(f1[i].x, f1[i].y, xNew, yNew, h); if (matches[i].id > 0) { d = sqrt(pow(xNew-f2[matches[i].id-1].x,2)+pow(yNew-f2[matches[i].id-1].y,2)); if (d < epsilon) nInliers++; nMatches++; } } return (nInliers / (float)nMatches);