What is the best format to use with SIFT?
Is there any difference in terms of precision and speed in using SIFT with JPEG, PNG or PGM images? Obviously supposing the same image size.
Is there any difference in terms of precision and speed in using SIFT with JPEG, PNG or PGM images? Obviously supposing the same image size.
Not really, because you always have to convert the Image into a grayscale Image for the SIFT algorithm. But beside that, a format which has a lossless conversion from the raw camera data would be good (e.g. JPEG is no lossless conversion of the original raw data).
On the other hand, if you use a JPEG as reference Image and just try the recognition also in JPEG, the conversion of JPEG is nonrelevant.
For some calrification opencv's SIFT checks for a CV_8U
Type Image and throws an error if the Image is not that type:
void SIFT_Impl::detectAndCompute(InputArray _image, InputArray _mask,
std::vector<KeyPoint>& keypoints,
OutputArray _descriptors,
bool useProvidedKeypoints)
{
int firstOctave = -1, actualNOctaves = 0, actualNLayers = 0;
Mat image = _image.getMat(), mask = _mask.getMat();
if( image.empty() || image.depth() != CV_8U )
CV_Error( Error::StsBadArg, "image is empty or has incorrect depth (!=CV_8U)" );
Asked: 2016-12-05 03:57:59 -0600
Seen: 3,396 times
Last updated: Dec 05 '16
Best features to track fish underwater
how to calculate SIFT/SURF descriptor for 1 point?
How does drawMatches work? (with respect to DMatch)
Training of SVM classifier in OpenCV using HOG, SIFT and ORB features
The detect feature of SIFT/SURF always breaks code
FeatureDetector giving conversion error on image set
How to use bag of words to predict an image?
Unhandled exception while machine learning using NormalBayesClassifier