matlab素描算法实现 - Go语言中文社区

matlab素描算法实现


matlab 实现图像素描化处理

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

实现代码如下:

I=imread('C:UsersAdministratorDesktopc.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值,从而实现不同程度的素描效果。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ahafg/article/details/79954724
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 23:53:33
  • 阅读 ( 1254 )
  • 分类:算法

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢