我手机上有一个软件实现了很多图像滤镜,挺有意思,我打算都尝试一下。
这个滤镜主要是实现老照片效果。
代码很短,我就不详细介绍了。
原图:
处理后效果:
matlab代码如下:
1 clear all;close all;clc;
2
3 img=imread('lena_rgb.jpg');
4 [h w k]=size(img);
5 imshow(img);
6
7 R=double(img(:,:,1));
8 G=double(img(:,:,2));
9 B=double(img(:,:,3));
10
11 rR=R*0.393+G*0.769+B*0.198;
12 rG=R*0.349+G*0.686+B*0.168;
13 rB=R*0.272+G*0.534+B*0.131;
14
15 randR=rand()*0.5+0.5;
16 randG=rand()*0.5+0.5;
17 randB=rand()*0.5+0.5;
18
19 imgn=zeros(h,w,k);
20 imgn(:,:,1)=randR*rR+(1-randR)*R;
21 imgn(:,:,2)=randG*rG+(1-randG)*G;
22 imgn(:,:,3)=randB*rB+(1-randB)*B;
23
24 figure;imshow(uint8(imgn));