A. SIFT算法提取特征点,怎样得到正确的特征点空间坐标,网上实现的程序里loc(i,1),loc(i,2)说是特征点的坐标
为了更加准确,大卫劳氏推荐用了subpixel也就是子像素坐标,
但是这里的话你直接取整形就是了。
有warning能通了不就行了?
B. 网上找到的SIFT特征提取代码,怎么使用
这是源码里针对找到图像特征点进行聚类的函数,运行到这里sift算法已经结束了。可以试着吧调用kmeans算法的部分注释掉,只执行sift算法然后打出来特征点看一下效果。我也不明白在一张图像上对特征点聚类的意义何在。对多张图像聚类还有意义。
C. 网上找到的SIFT特征提取代码,怎么使用
哈哈,我有一个基于opencv实现的sift,我把代码贴出来,你自己看看吧~~~
void sift_detector_and_descriptors(IplImage* i_left,IplImage* i_right)
{
Mat mat_image_left=Mat(i_left,false);
Mat mat_image_right=Mat(i_right,false);
cv::SiftFeatureDetector *pDetector=new cv::SiftFeatureDetector;
pDetector->detect(mat_image_left,left_key_point);
pDetector->detect(mat_image_right,right_key_point);
Mat left_image_descriptors,right_image_descriptors;
cv::SiftDescriptorExtractor *descriptor_extractor=new cv::SiftDescriptorExtractor;
descriptor_extractor->compute(mat_image_left,left_key_point,left_image_descriptors);
descriptor_extractor->compute(mat_image_right,right_key_point,right_image_descriptors);
Mat result_l,result_r;
drawKeypoints(mat_image_left,left_key_point,result_l,Scalar::all(-1),0);
drawKeypoints(mat_image_right,right_key_point,result_r,Scalar::all(-1),0);
//imshow("result_of_left_detector_sift",result_l);
//imshow("result_of_right_detector_sift",result_r);
Mat result_of_sift_match;
BruteForceMatcher<L2<float>> matcher;
matcher.match(left_image_descriptors,right_image_descriptors,result_of_point_match);
drawMatches(mat_image_left,left_key_point,mat_image_right,right_key_point,result_of_sift_match,result_of_sift_match);
imshow("matches_of_sift",result_of_sift_match);
imwrite("matches_of_sift.jpg",result_of_sift_match);
}
void main()
{
IplImage *n_left_image=cvLoadImage("D:\\lena.jpg");
IplImage *n_right_image=cvLoadImage("D:\\lena_r.jpg");
sift_detector_and_descriptors(n_left_image,n_right_image);
cvWaitKey(0);
}
这就是核心代码了,至于opencv所要用到的库,你自己弄一下吧,每个人的opencv版本不一样,这个都市不同的,希望能够帮到你~
D. 我想问下 用SIFT提取的特征点 也就是关键点是些什么点 这些点中有角点或者圆心么
第一个为题:SIFT算法里面把角点,边缘点看做了不稳定的点,是需要去除的。所以提取不到角点;
匹配问题:只要找到了两幅图片的角点坐标,那么对两幅图片进行拼接,对应点连线即可,这里面也就涉及到一个坐标变换的问题。
E. 基于sift算子的电子稳像研究中,MATLAB提取完图像中的特征点然后干什么
这些特征点可以视为图像的压缩版本,在某种程度上代表了图像。有这些特征点,可以和另一幅图像进行匹配,用两个图像的特征点计算匹配程度。
F. sift算法是什么
Sift算法是David Lowe于1999年提出的局部特征描述子,并于2004年进行了更深入的发展和完善。Sift特征匹配算法可以处理两幅图像之间发生平移、旋转、仿射变换情况下的匹配问题,具有很强的匹配能力。
这一算法的灵感也十分的直观,人眼观测两张图片是否匹配时会注意到其中的典型区域(特征点部分),如果我们能够实现这一特征点区域提取过程,再对所提取到的区域进行描述就可以实现特征匹配了。
sift算法的应用
SIFT算法目前在军事、工业和民用方面都得到了不同程度的应用,其应用已经渗透了很多领域,典型的应用如下:物体识别;机器人定位与导航;图像拼接;三维建模;手势识别;视频跟踪;笔记鉴定;指纹与人脸识别;犯罪现场特征提取。