快速扫描算法提取鱼眼图像有效区域

这个原理还是来自于《鱼眼图像校正算法研究》 这是作者在这篇论文中提出的自己改进的算法(我姑且叫它快速扫描算法吧) 

 A=imread('F:\orl_zhifangtu\yuyan1.jpg');
>> T=40;
>> [m,n,k]=size(A);
for i=1:m-1
    for j=1:n
        I(i,j)=0.59*A(i,j,1)+0.11*A(i,j,2)+0.3*A(i,j,3);
        if(I(i,j)>=T)
           I(i+1,j)=0.59*A(i+1,j,1)+0.11*A(i+1,j,2)+0.3*A(i+1,j,3); 
           if(I(i+1,j)>=T)
               bottom=j;
               break;
           end
        end
    end
end
for i=m:-1:2
    for j=1:n
        I(i,j)=0.59*A(i,j,1)+0.11*A(i,j,2)+0.3*A(i,j,3);
        if(I(i,j)>=T)
           I(i-1,j)=0.59*A(i-1,j,1)+0.11*A(i-1,j,2)+0.3*A(i-1,j,3); 
           if(I(i-1,j)>=T)
               top=i;
               break;
           end
        end
    end
end
for j=1:n-1
    for i=1:m
        I(i,j)=0.59*A(i,j,1)+0.11*A(i,j,2)+0.3*A(i,j,3);
        if(I(i,j)>=T)
           I(i,j+1)=0.59*A(i,j+1,1)+0.11*A(i,j+1,2)+0.3*A(i,j+1,3); 
           if(I(i,j+1)>=T)
               right=j;
               break;
           end
        end
    end
end
for j=n:-1:2
    for i=1:m
        I(i,j)=0.59*A(i,j,1)+0.11*A(i,j,2)+0.3*A(i,j,3);
        if(I(i,j)>=T)
           I(i,j-1)=0.59*A(i,j-1,1)+0.11*A(i,j-1,2)+0.3*A(i,j-1,3); 
           if(I(i,j-1)>=T)
               left=j;
               break;
           end
        end
    end
end
>> R=max(abs((right-left)/2),abs((bottom-top)/2));
B=imcrop(A,[left,top,2*R,2*R]);
>> imshow(B)

这是效果图

原图是如下:



 这个算法大大的节约了时间 等一秒就出来了 不像之前那个逐行逐列扫描算法和区域生长算法一样要等那么久



后来我又换了一幅鱼眼图 又试了下 原图:


下面是效果图:


提取效果还是挺好的  作者的这个算法真的比区域生长算法省了太多时间 因为区域生长是遍历了所有像素点 而且每次还会重复很多  而这个的次数就很少 因为只扫描了除了这个外接正方形以外的区域 所以很省时间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值