您当前的位置: 首页 >  matlab

slandarer

暂无认证

  • 1浏览

    0关注

    248博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MATLAB 制作抖音同款炫光海报

slandarer 发布时间:2021-05-07 19:20:04 ,浏览量:1

这篇其实步骤比较多,看效果: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

步骤 0.图片导入
oriPic=imread('test.jpg');

原始图片: 在这里插入图片描述 抖音上是做了铜板雕刻的像素化处理,由于MATLAB本身不具备这个功能,因此我们使用添加椒盐噪声和动态模糊的方法来模拟铜板雕刻的效果

1.添加椒盐噪声

正常彩色图片添加椒盐噪声,其噪声点也是彩色的,这里我们想要为彩图添加黑白的椒盐噪声,就可以先构造一张和原图等大的灰度图,增添椒盐噪声后,把噪声点移植到原图上:

disp('正在进行噪声添加')
grayPic=uint8(150.*ones([size(oriPic,1),size(oriPic,2)]));
J = imnoise(grayPic,'salt & pepper',0.1);
Rchannel=oriPic(:,:,1);Rchannel(J==255)=255;Rchannel(J==0)=0;
Gchannel=oriPic(:,:,2);Gchannel(J==255)=255;Gchannel(J==0)=0;
Bchannel=oriPic(:,:,3);Bchannel(J==255)=255;Bchannel(J==0)=0;
spPic(:,:,1)=Rchannel;
spPic(:,:,2)=Gchannel;
spPic(:,:,3)=Bchannel;
imshow(spPic)

效果: 在这里插入图片描述

2.图像添加动态模糊
disp('正在动态模糊')
H = fspecial('motion', 40, 0);
movePic=imfilter(spPic, H, 'replicate');
imshow(movePic)

在这里插入图片描述

3.径向模糊
disp('正在进行径向模糊')
radialPic=radialConv(movePic,60);
imshow(radialPic)

    function radialPic=radialConv(oriPic,k)
        [h,w,c]=size(oriPic);
        radialPic=zeros(h,w,c);
        for y=1:h
            for x=1:w
                r=sqrt((y-h/2)^2+(x-w/2)^2);
                ang=atan2(y-h/2,x-w/2);
                pix=[0 0 0];
                pixNum=0;
                
                for i=0:1:k
                    %r-i是距离当前像素的距离为r-i的像素,在当前像素和中心像素同一条直线上
                    yy=round(abs(r-i)*sin(ang)+h/2);
                    xx=round(abs(r-i)*cos(ang)+w/2);
                    if yy>=1 && yy=1 && xxw)=w;yy(yy>h)=h;
                xx(xx            
关注
打赏
1664692598
查看更多评论
0.0406s