三哥的博客

学习笔记

matlab素描算法实现

matlab 实现图像素描化处理

处理一幅图像,生成实际的素描图像,基本原理见:photoshop图像滤镜——素描算法

实现代码如下:

I=imread('C:\Users\Administrator\Desktop\c.jpg');  
figure(1); 
imshow(I);  
info_size=size(I);  
height=info_size(1);  
width=info_size(2);  
N=zeros(height,width);  %取反之后值
G=zeros(height,width);  %滤波之后值
%三通道
rc = I(:,:,1);
gc = I(:,:,2);
bc = I(:,:,3);

%选择一个通道进行处理
channel = gc;
out=zeros(height,width);  

spec=zeros(height,width,3);  

%颜色取反
for i=1:height  
    for j=1:width  
        N(i,j)=uint8(255-channel(i,j));   %double
    end  
end  
figure(2);
imshow(N,[0,255]);

%高斯模糊
gausize = 9;     %滤波器大小,越大越模糊
gausigma = 10;    %越大越模糊
GH = fspecial('gaussian', gausize, gausigma);
G = imfilter(N, GH);
figure(3);
imshow(G,[0,255]);


for i=1:height  
    for j=1:width  
        b=double(G(i,j));  
        a=double(channel(i,j));  
        temp=a+a*b/(256-b);  
        out(i,j)=uint8(min(temp,255));  
    end  
end  
figure(4)
imshow(out/255);  

%模糊程度越高,得到的素描结果越清晰,框架纹理颜色越深

效果图
原始图像
素描图像

可以调整高斯滤波器的窗口大小和sigma值,从而实现不同程度的素描效果。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ahafg/article/details/79954724
个人分类: Matlab
想对作者说点什么? 我来说一句

基于matlab的素描生成

2014年01月16日 1.07MB 下载

没有更多推荐了,返回首页

不良信息举报

matlab素描算法实现

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭