基于Affine-Sift算法的图像配准matlab仿真

举报
简简单单做算法 发表于 2025/02/20 20:56:17 2025/02/20
80 0 0
【摘要】 1.算法运行效果图预览(完整程序运行后无水印) Affine-Sift算法Sift算法2.算法运行软件版本MATLAB2022A 3.部分核心程序(完整版代码包含操作步骤视频)figure;subplot(121);imshow(img1s);title('原始图片1');subplot(122);imshow(img2s);title('原始图片2');%计算图片的大小[m1,n1] = ...

1.算法运行效果图预览

(完整程序运行后无水印)

 

Affine-Sift算法

1.jpeg

2.jpeg

3.jpeg

Sift算法

4.jpeg

5.jpeg

6.jpeg

2.算法运行软件版本

MATLAB2022A

 

3.部分核心程序

(完整版代码包含操作步骤视频)

figure;
subplot(121);imshow(img1s);title('原始图片1');
subplot(122);imshow(img2s);title('原始图片2');
%计算图片的大小
[m1,n1] = size(img1s);
[m2,n2] = size(img2s);
 
%对两个图片分别进行角度选择和不同角度的特征提取
if sel == 1
     tic;
     disp('对图片1进行处理');
     [Hrl_feature1,Hr_pointl_feature1,cnt1]=func_sift_angle(img1s,m1,n1,t);
     Time = toc;
     disp('对图片2进行处理');
     [Hrl_feature2,Hr_pointl_feature2,cnt2]=func_sift_angle(img2s,m2,n2,t);
     save feature_data_B1.mat  Hrl_feature1 Hr_pointl_feature1 Hrl_feature2 Hr_pointl_feature2 cnt1 cnt2 Time
else
     load feature_data_B1.mat     
end
 
%进行配准
pp           = 0;
level        = 0.6; 
image_match1 = []; 
image_match2 = []; 
for i = 1:(cnt1 - 1)
    for j = 1:(cnt2 -1)
    pp = pp + 1;
    fprintf('处理进度:');fprintf('%3.2f',100*pp/(cnt1*cnt2));fprintf('%%\n\n');  
    NF1(i)       = size(Hrl_feature1{i},1);
    NF2(j)       = size(Hrl_feature2{j},1);
    same_feature = func_feature_match(Hrl_feature1{i},Hrl_feature2{j},level);            
    ind1         = find(same_feature);
    ind2         = same_feature(ind1);
    %根据门限来选择一定区域内的配准点
    ind          = find(sqrt(sum(((Hrl_feature1{i}(ind1,:)-Hrl_feature2{j}(ind2,:)).^2),2)) <= level);
    
    ind1         = ind1(ind);
    ind2         = ind2(ind);
    Match1Tmp    = Hr_pointl_feature1{i}(ind1,[ 1 2 3 end ]);
    Match2Tmp    = Hr_pointl_feature2{j}(ind2,[ 1 2 3 end ]);
    image_match1 = [image_match1;Match1Tmp]; 
    image_match2 = [image_match2;Match2Tmp]; 
    end
end
close all;
%显示最后处理的效果
[LineCoordX,LineCoordY,N] = func_figure(img1s,image_match1,img2s,image_match2,Feature_point);

4.算法理论概述

        图像配准是计算机视觉和图像处理领域中的一个重要任务,它的目的是将不同时间、不同视角或者不同传感器获取的同一场景的图像进行几何对准。Affine - Sift 算法结合了仿射变换(Affine Transformation)和尺度不变特征变换(Scale - Invariant Feature TransformSIFT)的优点,能够有效地处理图像之间的旋转、缩放、平移以及仿射变换等复杂的几何变换关系,从而实现高精度的图像配准。

 

4.1 SIFT 算法原理

7.jpg

 

4.2 Affine算法原理

 

8.jpg

 

4.3 Affine-SIFT算法原理

       首先在待配准的两幅图像(源图像和目标图像)上分别运行 SIFT 算法,提取出特征点及其特征描述符。

 

9.jpg

 

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。