matlab 图像平滑的算法_matlab鱼眼图像矫正算法

4fef8a9da0ece80107a0813cafe65f3b.png

close all;

clear;

clc;

I=imread('sx1.jpg');

I=rgb2gray(I);

imshow(I);

I=double(I);

[m,n]=size(I);

I_Ex=zeros(m,n);

C=zeros(m,1);

R=floor(m/2-1);

% R=299;

k=40/151; % 27/151;

a=0:(1/R):1;

b=a.^3.5 *k; %2

c=1.-b;

for i=1:R

C(R+1-i)=c(i)*sqrt(R^2-(i)^2)/R;

C(R+1+i)=c(i)*sqrt(R^2-(i)^2)/R;

% C(R+1-i)=sqrt(R^2-(i)^2)/R

% C(R+1+i)=sqrt(R^2-(i)^2)/R;

end

C(R+1)=1;

yc=floor(m/2);

xc=floor(n/2); % 231;

count=0;

for i=2:m-10

for j=2:n-10

%%%经纬方法,存在失真

xp= (j-xc)*C(i)+xc;

yp= i;

xs=floor(xp);

ys=floor(yp);

a0=xs+1-xp;

b0=xp-xs;

a=ys+1-yp;

b=yp-ys;

p1=I(ys,xs);

% p2=I(ys,xs+1);

% p3=I(ys+1,xs);

% p4=I(ys+1,xs+1);

%

% p5=p1*a0+p2*b0;

% p6=p3*a0+p4*b0;

I_Ex(i,j)=p1;%p5*a+p6*b;

if p1>100

count=count+1;

end

end

end

I_Ex=uint8(I_Ex);

figure;

imshow(I_Ex);

% imwrite(I_Ex,'D:b.bmp')

count

m*n

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值