社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
处理一幅图像,生成实际的素描图像,基本原理见: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值,从而实现不同程度的素描效果。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!