资源简介

类似于photoshop球面化滤镜,可调整各种参数,可用于图像批处理

资源截图

代码片段和文件信息

clc
clear

%% 生成背景图
siz=300;
sf=siz/10; % 光栅频率,图像越大条数越多宽度固定
x=linspace(-11siz);
y2=cos(x*pi*sf)+1;
img=(y2‘*y2);
img1=fix(img.*256)+1;
A=mat2gray(img1);
imshow(A);
figure
%A=imread(‘1.bmp‘);

%% 球面化参数
    mode=1;%1为快速粗糙模式,0为精细模式(插值)
    R=50;%原始球半径
    sigh=1;%1为凸-1为凹
    bump=.9;%凸度,0到1
    center=size(A)/2;%球心坐标
%%

siz=R*2+1;
%imshow(A)
for x=1:siz%对于图像上的每个点
    for y=1:siz
        l(xy)=((R-x)^2+(R-y)^2)^.5;%球心到此点距离
        dir(xy)=atan((R+1-y)/(R+1-x));%从球心到此点的方向
        if l(xy)>=R
            l(xy)=0;
        end
    end
end
dir(R+1R+1)=0;%避免atan(0/0)
dir=abs(dir);





%% 核心方程 ll为原图每个点的距离-后图每个点的距离
d=R*(1-bump^2)/2/bump;
r=(R^2+d^2)^.5;
ll=l-R*asin(l/r)/atan(R/d);
%%





%x=1:siz;y=1:siz;
%mesh(xyll) %查看偏移量
%pause
%fi

评论

共有 条评论