当前位置:首页 > SIFT图像特征点检测实验报告
重庆交通大学信息科学与工程学院 《多媒体技术》课程
实验报告/作业(7)
班 级: 物联1501
姓名-学号 : 李怿欣
实验项目名称: 图像SIFT特征
实验项目性质: 设计性
实验所属课程: 《多媒体技术》
实验室(中心): 南岸校区语音大楼8楼机房
指 导 教 师 : 娄路
上机实验时间: 2018 年 5 月 19 日
1
教师评阅意见:
签名: 年 月 日 实验成绩: 一、实验内容
1. 理解和实践SIFT特征提取与匹配。
自己拍摄两张有部分区域重叠的照片,使用opencv的特
征提取、匹配函数实现两张图片的SIFT特征提取和匹配,并绘制特征点在匹配前和匹配后的连线。 2. 全景图片的生成练习。
旋转相机拍摄多张室内或室外图片,然后利用opencv的相关函数完成一幅全景图片的制作,并解释全景图片的实现过程。
二、实验要求
1. 分组要求:每个学生独立完成,即1人1组。
2. 程序及报告文档要求:具有较好的可读性,如叙述准确、标注明确、截图清晰等。 三、实验过程介绍 1. SIFT特征提取与匹配
#include \
2
#include \ #include \
using namespace cv;
int main(int argc, char *argv[]) { Mat image01 = imread(\ Mat image02 = imread(\ Mat image1, image2;
GaussianBlur(image01, image1, Size(3, 4), 0.5); GaussianBlur(image02, image2, Size(3, 4), 0.5);
SiftFeatureDetector siftDetector(30); vector
drawKeypoints(image1,
keyPoint1,
image1,
DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
drawKeypoints(image2,
keyPoint2,
image2,
DrawMatchesFlags::DRAW_RICH_KEYPOINTS); namedWindow(\ namedWindow(\
imshow(\ imshow(\
SiftDescriptorExtractor siftDescriptor;
Mat imageDesc1, imageDesc2;
3
Scalar::all(-1),
Scalar::all(-1),
}
siftDescriptor.compute(image1, keyPoint1, imageDesc1); siftDescriptor.compute(image2, keyPoint2, imageDesc2);
BruteForceMatcher
matcher.match(imageDesc1, imageDesc2, matchePoints, Mat()); Mat imageOutput;
drawMatches(image01, keyPoint1, image02, keyPoint2, matchePoints, imageOutput); namedWindow(\imshow(\waitKey(); return 0;
实验结果: 原图:
4
共分享92篇相关文档