鱼眼拼接之Harris检测特征点

理论部分是根据《鱼眼图像全景拼接系统》

%我用的是鱼眼图像  所以先提取区域校正

A=imread('F:\orl_zhifangtu\s1.jpg');

T=40;

[A,R]=kuaisusaomiao(A,T);

[m,n,k]=size(A);

C=[];

x=n/2;

y=m/2;

for u=1:m

    for v=1:n

        i=u;

       j=round(sqrt(R^2-(y-u)^2)*(v-x)/R+x);

       if(R^2-(y-u)^2<0)

           continue;

        end

       C(u,v,1)=A(i,j,1);

       C(u,v,2)=A(i,j,2);

       C(u,v,3)=A(i,j,3);

    end

end

C=uint8(C);

%下面才是开始特征点检测

C=rgb2gray(C);

k=0.045;

threshold=1000000;

cnt=0;(特征点个数  可以在MATLAB里面看到)

Rmax=0;

result=zeros(m,n);

a=[-1 0 1];

b=a';

Ix=filter2(a,C);

Iy=filter2(b,C);

w=fspecial('gaussian',[5 5],0.8);

E=filter2(w,Ix.^2);

F=filter2(w,Iy.^2);

G=filter2(w,Ix.*Iy);

for x=3:m-2

      for y=3:n-2

         for i=-2:2

             forj=-2:2

                RR(x,y)=E(x,y)*F(x,y)-(G(x,y))^2-k*(E(x,y)+F(x,y))^2;

                RR(x+i,y+j)=E(x+i,y+j)*F(x+i,y+j)-(G(x+i,y+j))^2-k*(E(x+i,y+j)+F(x+i,y+j))^2;

                if(RR(x,y)<RR(x+i,y+j))

                   break;

                else

                   RRmax=RR(x,y);

                end

               end

           end

          if(RRmax>threshold)

              cnt=cnt+1;

              result(x,y)=1;

            end

       end

end

>> [X,Y]=find(result==1);

imshow(C);

hold on

plot(Y,X,'rx');

显示出来效果如第二幅图所示:


当阈值取threshold=500000;时效果如下所示:

效果不好 特征点太多   而且有的特征点根本没有显示出来

当阈值改为threshold=1000000;时 特征点比上幅图减少了  但是也没有SIFT效果好  可能是编的不够好


这个程序要自己修改阈值 而且不知道该修改成多少才合适  所以不好 

后来在百度文库上搜到一个程序  效果挺好的 而且简单易懂  网址就不贴了  忘记了当时

前面的鱼眼处理部分不变

只是改了后面的检测特征点那里

A=imread('F:\orl_zhifangtu\s1.jpg');

T=40;

[A,R]=kuaisusaomiao(A,T);

[m,n,H]=size(A);

C=[];

x=n/2;

y=m/2;

for u=1:m

    for v=1:n

        i=u;

        j=round(sqrt(R^2-(y-u)^2)*(v-x)/R+x);

        if(R^2-(y-u)^2<0)

            continue;

        end

        C(u,v,1)=A(i,j,1);

        C(u,v,2)=A(i,j,2);

        C(u,v,3)=A(i,j,3);

    end

end

C=uint8(C);

%随便拿一幅图像 都可以从以下开始进行harris特征点检测

C=rgb2gray(C);

>> ori_im=C;

>> fx=[-2 -1 0 1 2];

>> Ix=filter2(fx,ori_im);

>> fy=[-2;-1;0;1;2];

>> Iy=filter2(fy,ori_im);

>> Ix2=Ix.^2;

>> Iy2=Iy.^2;

>> Ixy=Ix.*Iy;

>> h=fspecial('gaussian',[77],0.8);

Ix2=filter2(h,Ix2);

>> Iy2=filter2(h,Iy2);

>> Ixy=filter2(h,Ixy);

>> result=zeros(m,n);

>> R=zeros(m,n);

>> Rmax=0;

>> for i=1:m

     for j=1:n

        M=[Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j)];

        R(i,j)=det(M)-0.04*(trace(M))^2;

        if(R(i,j)>Rmax)

            Rmax=R(i,j);

        end

    end

end

>> cnt=0;

>> for i=2:m-1

      for j=2:n-1

        if(R(i,j) > 0.0008*Rmax &&R(i,j) > R(i-1,j-1) && R(i,j) > R(i-1,j) && R(i,j) >R(i-1,j+1) && R(i,j) > R(i,j-1) && R(i,j) > R(i,j+1)&& R(i,j) > R(i+1,j-1) && R(i,j) > R(i+1,j) &&R(i,j) > R(i+1,j+1))

           result(i,j)=1;

           cnt=cnt+1;

         end

     end

end

>>[posc,posr]=find(result==1);

>> imshow(ori_im);

>> hold on;

>> plot(posr,posc,'rx');

他这个程序是先遍历所有找到最大的那个值  然后把最大值的0.0008倍设置为阈值  当然这个倍数也可以自己调节

效果还不错 如下:

效果还是挺棒棒哒的。。。最起码比我之前的那个效果好多了



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
全景图像拼接是将多幅有重叠区域的图像拼接成全视角360o的平面图像。全景图像拼接技术是一种基于图像绘制技术、图像处理及计算机几何学等多领域的综合技术,由于对硬件要求低,真实感较好等优点,是目前虚拟现实、三维重建等的重点研究方向。鱼眼图像是通过在相机上安装超广视角的鱼眼镜头所拍摄,具有视域广,一次成像为非线性图像的特点,比普通视觉图像拼接所需的原图像少,效率高,但拼接难度大。 本文介绍了鱼眼图像拼接技术的研究背景、应用领域。重点研究了图像拼接技术中的鱼眼桶形畸变校正、投影变换理论、SIFT匹配以及图像融合等技术,对比分析了它们的理论基础、实现方式、运算性能以及还有的不足。 鱼眼图像形变严重,首先需要校正为符合人类视觉的线性图像。针对传统的经纬度校正法还存在一定拱形失真的问题,本文提出了渐进方程校正法,此方法不考虑用镜头参数来构建复杂的投影模型,完成鱼眼图像的校正,单帧图像视觉效果较好且更利于拼接;针对多帧图像的拼接问题,考虑到鱼眼图像的特点,只截取每帧图像的部分区域进行定位匹配,在此区域进行SIFT特征的全景图像拼接,运算量比全局SIFT算法大幅减少,耗时相应降低;为生成实际景物连贯的全景图像,本文采用柱面投影变换,为了解决投影变换后图像产生阶梯现象,文中对比了几种常用算法,并采用双线性插值算法有效解决该问题;在图像融合过程中,分析比较了几种经典算法,选择渐入渐出融合算法对待拼接的图像进行处理,使得拼接后图像重叠区域过渡平滑,基本实现无缝拼接,在图像处理的速度和效果达到一定的均衡。 最后,为了便于全景图像的理解和观察,本文还设计了全景柱形环绕浏览人机交互界面,实现了垂直180o,水平360o空间的动态环绕视觉观察。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

元气少女缘结神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值