1、Matlab实现自己的photoshop,VS,Adobe Photoshop:图像元老,最受欢迎的强大图像处理软件之一,Photoshop是Adobe公司旗下最为出名的图像处理软件之一,集图像扫描,编辑修改,图像制作,广告创意,图像输入与输出于一体的图像处理软件,深受广大平面设计人员和电脑美术爱好者的喜爱。,PHOTOSHOP简介,增加图像对比度,原理 由于许多原始图像的灰度经常分布在一个小范围内,不易观察分辨,通过直方图均衡化使图像灰度均匀分布,使一定范围内像元值的数量大致相等,以此加强细节,提高图像的清晰度,便于观察以及计算机进行分析处理,PS中“自动对比度”,I=imread(D:Do
2、cumentsPictures131027 1.jpg);%读入图像 i=rgb2gray(I); high=histeq(i);%直方图均衡化定灰度级数n,默认64 subplot(2,2,1),imshow(i);%显示图像 subplot(2,2,2),imshow(high); subplot(2,2,3),imhist(i);%获取图像的直方图 subplot(2,2,4),imhist(high);,自动对比度,效果对比,Matlab效果,就是把图片反向,原理 底片就是负片,就是和原图片完全相反,想要实现负片效果就是把各像素点完全翻转,取像素255的补数并取代原来的点,即图像按照下
3、列映射关系进行灰度变换f(x)=255-x,PS中“底片效果”,底片效果,i=imread(D:DocumentsPictures131027 1.jpg); j=255-i; subplot(1,2,1); imshow(i); subplot(1,2,2); imshow(j);,效果对比,Matlab效果,photoshop效果,增加某一通道的值,原理 平时见得rgb图像是由R,G,B三个通道构成,也就是红色,绿色,蓝色三个通道构成,因为平时红色一类颜色代表暖色调,蓝色一类代表冷色调,要想增加图片的色温,增加红色通道或者减少蓝色通道即可,Ps中的“色相”,RGB=imread(lengs
4、ediao.jpg); subplot(1,4,1),imshow(RGB) title(原始真彩色图像) subplot(1,4,2),imshow(RGB(:,:,1)%提取红色分量 title(真彩色图像的红色分量) subplot(1,4,3),imshow(RGB(:,:,2)%提取绿色分量 title(真彩色图像的绿色分量) subplot(1,4,4),imshow(RGB(:,:,3)%提取蓝色分量 title(真彩色图像的蓝色分量) RGB(:,:,1)=RGB(:,:,1+60);%将红色通道中的每个值加60 figure; subplot(1,4,1),imshow(RG
5、B) title(变化后真彩色图像) subplot(1,4,2),imshow(RGB(:,:,1) title(真彩色图像的红色分量) subplot(1,4,3),imshow(RGB(:,:,2) title(真彩色图像的绿色分量) subplot(1,4,4),imshow(RGB(:,:,3) title(真彩色图像的蓝色分量),给图片增加暖色,效果对比,matlab实现效果,Ps实现效果,将图像的整体轮郭勾画出来,原理 有时候需要某种类似于素描特殊效果的时候,需要将图片转换成单线条效果,再进行下一步处理,需要用到单线条效果,利用边缘检测算法,将边缘检测出来转换成二值图像,再对每一
6、个像素取反,便会得到单线条的图像,单线条效果,单线条效果,i=imread(danxiantiao.jpg); I=rgb2gray(i); BW=edge(I,canny);%提取图像边缘,利用 的是canny算法 j=1-BW; %将每个像素点取反 imshow(I) figure; imshow(j),单线条效果,matlab实现,Ps实现,Ps中“动感模糊”的效果,图像动态模糊 原理 Photoshop中“动感模糊”的效果就是实现了图片的动态模糊的效果,在matlab中可以用自定义滤波器实现,可以根据需要模糊的要求,修改参数值,实现定义滤波器无为水平运动或是其他运动实现其效果。,“动感
7、模糊”效果图,“动感模糊”效果,i=imread(dongganmohu.jpg); figure(1);imshow(i); title(原图像); PSF=fspecial(motion,20,0);%创建预定义滤波器 MF=imfilter(i,PSF,circular);%多维图像滤波,返回的图像大小通过将图像看成是一个二维周期函数的一个周期来扩展 figure(2);imshow(MF); title(运动模糊图像);,效果对比,ps实现,matlab实现,Ps中的“浮雕”效果,制作浮雕效果 原理 先将图像转化成灰度图像,然后进行加入噪声处理,再对图像进行卷积计算,最后将矩阵转换为灰
8、度图像,浮雕效果,i=imread(fudiao.bmp); f0=rgb2gray(i);%把原图改为灰度图 figure(1),imshow(f0),title(灰度图); f1=imnoise(f0,speckle,0.01);%加入密度为0.01的高斯乘性噪声 f1=im2double(f1);%将图像转化为双精度 figure(2),imshow(f1);title(加高斯噪声); h3=1/9.*111;111;111;%给定均值滤波窗口 f4=conv2(f1,h3,same);%采用h3对图像f1进行卷积滤波 figure(3),imshow(f4);title(卷积滤波图)
9、h2=fspecial(sobel);%创建预定义滤波器,进行sobel滤波 g3=filter2(h2,f1,same);%二维线性滤波 figure(4),imshow(g3);title(sobel滤波图); K=mat2gray(g3);%转换矩阵为灰度图像 figure(5),imshow(k);title(浮雕图);,浮雕效果,matlab实现,原图,Ps实现,总结,用Matlab实现自己的photoshop效果其实并不困难,关键是懂得数字图像的产生方式,存储方式,以及对一些数字函数的应用,会发现photoshop中的一些效果完全自己可以做出来,学习数字图像处理,除了学习任务,也有利于利用photoshop制作更完美的效果,THANK YOU !,