图像拼接基于harris检测matlab代码
- 课题背景
随着数字图像获取设备特别是数码相机的普及和互联网的高速发展,数字图像已成为传递视觉信息的重要载体。为了获得更令人满意的数字图像,以 Photoshop(简称 PS)为代表的图像处理工具广泛流行,这使图像的编辑和修改越来越容易,因此PS成为了专业摄影师和业余爱好者优化照片质量、进行艺术创作的有力工具。
数字图像处理使我们的生活变得丰富多彩。但与此同时,利用图像编辑软件可以容易地对数字照片进行篡改或伪造,图像内容的真实性不时受到质疑。2007 年10月,一名陕西村民宣称他拍到濒危野生动物华南虎的一组照片, 相关部门随即予以确认。照片公布后很快就引起公众的怀疑,后来被认定其拍摄对象其实是五年前的一张年画。近年来国内外照片造假的丑闻时有曝光。例如 2003 年5月洛杉矶时报刊登的伊拉克战场新闻照片被揭露是由两张照片拼凑的, 刻意夸大了现场敌对情绪。现在利用软件工具修改编辑数字图像已经十分普遍,可以将它统称为对图像进行PS。对于数字照片是否允许PS,是一个多年来争论不休的问题。正常的 PS 处理是充分发挥数码相机优势、实现最佳视觉效果的必要步骤,大幅度剪裁拼接、变形、合成加工也是某些艺术创作的常用手法。但是在新闻报道、司法取证、医学影像、纪实摄影等场合,不当的PS例如故意修改图像内容、移动和复制局部区域、删除特定对象等,无疑构成非法的篡改和伪造。一个不争的事实是:尽管图像篡改不断被揭露并受到谴责,对数字图像进行伪造篡改的势头有增无减。如何判断一幅图像是否曾被篡改已成为信息安全领域的重要课题,图像防伪认证是今后相当长一段时间里图像处理、信息安全、计算机科学领域研究者面临的一个难题。
- 实现效果
三、源代码
clear all
% 读入图片
pic1=imread(’yangqian1.jpg');
pic2=imread('yangqian2。jpg’);
% Harris角点检测
points1=myHarris(pic1);
points2=myHarris(pic2);
% 画出Harris角点
figure(1)
drawHarrisCorner(pic1,points1,pic2,points2);
% 角点特征描述
des1=myHarrisCornerDescription(pic1,points1);
des2=myHarrisCornerDescription(pic2,points2);
% 角点粗匹配
matchs=myMatch(des1,des2);
% 获取各自出匹配角点位置
matchedPoints1=points1(matchs(:,1),:);
matchedPoints2=points2(matchs(:,2),:);
% 粗匹配角点连线
figure(2)
drawLinedCorner(pic1,matchedPoints1,pic2,matchedPoints2);
% 角点精匹配
[newLoc1,newLoc2]=pointsSelect(matchedPoints1,matchedPoints2);
% 精匹配角点连线
figure(3)
drawLinedCorner(pic1,newLoc1,pic2,newLoc2)