您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > matlab实现photoshop
Matlab实现自己的photoshopVSAdobePhotoshop:图像元老,最受欢迎的强大图像处理软件之一•Photoshop是Adobe公司旗下最为出名的图像处理软件之一,集图像扫描,编辑修改,图像制作,广告创意,图像输入与输出于一体的图像处理软件,深受广大平面设计人员和电脑美术爱好者的喜爱。PHOTOSHOP简介增加图像对比度•原理•由于许多原始图像的灰度经常分布在一个小范围内,不易观察分辨,通过直方图均衡化使图像灰度均匀分布,使一定范围内像元值的数量大致相等,以此加强细节,提高图像的清晰度,便于观察以及计算机进行分析处理PS中“自动对比度”I=imread('D:\Documents\Pictures\1310271.jpg');%读入图像i=rgb2gray(I);high=histeq(i);%直方图均衡化定灰度级数n,默认64subplot(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的补数并取代原来的点,即图像按照下列映射关系进行灰度变换f(x)=255-xPS中“底片效果”底片效果i=imread('D:\Documents\Pictures\1310271.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('lengsediao.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);%将红色通道中的每个值加60figure;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('真彩色图像的蓝色分量')给图片增加暖色效果对比•matlab实现效果Ps实现效果将图像的整体轮郭勾画出来•原理•有时候需要某种类似于素描特殊效果的时候,需要将图片转换成单线条效果,再进行下一步处理,需要用到单线条效果,利用边缘检测算法,将边缘检测出来转换成二值图像,再对每一个像素取反,便会得到单线条的图像单线条效果单线条效果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中可以用自定义滤波器实现,可以根据需要模糊的要求,修改参数值,实现定义滤波器无为水平运动或是其他运动实现其效果。“动感模糊”效果图“动感模糊”效果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中的“浮雕”效果•制作浮雕效果•原理•先将图像转化成灰度图像,然后进行加入噪声处理,再对图像进行卷积计算,最后将矩阵转换为灰度图像浮雕效果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('卷积滤波图')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制作更完美的效果THANKYOU!
本文标题:matlab实现photoshop
链接地址:https://www.777doc.com/doc-2273677 .html