(年整理)图像拼接基于harris检测matlab

该博客详细介绍了如何使用MATLAB进行图像拼接,通过Harris角点检测来实现图像匹配。首先进行Harris角点检测,然后利用特征描述进行粗匹配和精匹配,最后完成图像的拼接过程。
摘要由CSDN通过智能技术生成

图像拼接基于harris检测matlab代码

clc
clear all
% 读入图片
pic1=imread(’lena1.jpg’);
pic2=imread(‘lena2。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);
% 图像拼接
im=picMatched(pic1,newLoc1,pic2,newLoc2);
% 显示拼接图像
figure(4)
imshow(im);
set(gcf,’Color’,’w’);
function points=myHarris(pic)
% 功能:寻找Harris角点
% 输入:RGB图像或gray图
% 输出:角点所在的行、纵的N×2矩阵
if length(size(pic))3
pic=rgb2gray(pic);
end
pic=double(pic);
hx=[-1 0 1];
Ix=filter2(hx,pic);
hy=[—1;0;1];
Iy=filter2(hy,pic);
Ix2=Ix.*Ix;
Iy2=Iy.*Iy;
Ixy=Ix。*Iy;
h=fspecial(‘gaussian’,[7 7],2);
Ix2=filter2(h,Ix2);
Iy2=filter2(h,Iy2);
Ixy=filter2(h,Ixy);
[heigth,width]=size(pic);
alpha=0.06;
R=zeros(heigth,width);
for i=1:heigth
for j=1:width
M=[Ix2(i,j) Ixy(i,j);Ixy(i,j&

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值