matlab实现油画-浮雕-伪色彩-底片-单线条效果程序.知识分享.pptVIP

  • 34
  • 0
  • 约3.22千字
  • 约 11页
  • 2020-06-20 发布于浙江
  • 举报

matlab实现油画-浮雕-伪色彩-底片-单线条效果程序.知识分享.ppt

图像特殊效果处理程序 李志鹏 09自动化 200992140116 此程序使用matlab制作,能对图像 进行浮雕、底片、伪色彩、油画、单线条等特殊效果的处理。 通过此程序可以进一步的掌握用matlab来处理有关图像的问题。 以下是各种效果的具体介绍。 浮雕效果 %改为灰度图像 f0=rgb2gray(handles.pic); %加入高斯噪声 f1=imnoise (f0,‘speckle’,0.01); %加入密度0.01的高斯乘性噪声 f1=im2double(f1); %给定均值滤波窗口 h3=1/9.*[1 1 1; 1 1 1; 1 1 1 ]; %采用H3对F2进行卷积滤波 f4=conv2(f1,h3,same); %进行sobel滤波 h2=fspecial(sobel); g3=filter2(h2,f1,same); K=mat2gray(g3); figure(5),imshow(K);title(‘浮雕效果); 底片效果 我们所见到各种色彩都是由红、绿、蓝 3种颜色按区别比例混合而成这就是我们所说 3基色它们颜 色值(RGB值)是 0~255 所以我们只需去图像上各个点RGB值然后用255减去这个值并将这个值重新赋值给各个点就会达到我们想要底片效果了。 y=255-handles.pic; %转化为反色图像 figure,imshow(y);title(‘底片效果’); %显示反色图像 伪色彩效果 所谓伪色彩处理,就是将图像中的灰度级经由线性或非线性变换成不同的彩色。 handles.pic=rgb2gray(handles.pic); %读入源图像 [M,N]=size(handles.pic); %读取图像的大小 for i=1:M; for j=1:N; if handles.pic(i,j)32 %转化为蓝色 B(i,j,:,:,:)=[0,0,1]; elseif handles.pic(i,j)64 %转化为绿色 B(i,j,:,:,:)=[0,1,0]; elseif handles.pic(i,j)96 %转化为淡蓝色 B(i,j,:,:,:)=[0.4,0.9,1]; elseif handles.pic(i,j)128 %转化为紫色 B(i,j,:,:,:)=[1,0,1]; elseif handles.pic(i,j)160 %转化为红色 B(i,j,:,:,:)=[1,0,0]; elseif handles.pic(i,j)192 %转化为橙色 B(i,j,:,:,:)=[1,0.8,0]; elseif handles.pic(i,j)224 %转化为黄色 B(i,j,:,:,:)=[1,1,0]; elseif handles.pic(i,j)255 %转化为淡黄色 B(i,j,:,:,:)=[1,0.8,0]; end end end figure,imshow(B);title(‘伪色彩效果); 油画效果 function [I_painted]=OilPaint(I_rgb, radius, intensity_level) [filename pathname]=uigetfile({‘*.jpg’;‘*.bmp’;‘*.*’},‘读入文件); pathfile=[pathname filename]; handles.pic=imread(pathfile); intensity_level = 180; radius = 5; s1=size(handles.pic); width=s1(1); height=s1(2); I_painted=uint8(zeros(width,height)); I=rgb2gray(handles.pic); % down-sampling the intensity image I= floor(I* (intensity_level/255)); tic for x = 1:width for y = 1:height clear intensity_counter R G

文档评论(0)

1亿VIP精品文档

相关文档