PS 滤镜算法原理——染色玻璃

%%%% 完成PS 中的染色玻璃滤镜特效
clc;
clear all;
close all;

Image=imread('4.jpg');
Image=double(Image);

Gray_Image=rgb2gray(Image/255);
[row,col]=size(Gray_Image);
S_filter=fspecial('sobel');
G=sqrt(imfilter(Gray_Image, S_filter, 'replicate').^2+...
       imfilter(Gray_Image, S_filter, 'replicate').^2);
   
% % % % 利用形态学细化分割图像
%%%% 形态学中的结构算子的大小,决定了分割的块的大小
Block_Size=8;
G2=imclose(imopen(G,ones(Block_Size,Block_Size)), ones(Block_Size,Block_Size));
L=watershed(G2);
wr=L==0;
figure, imshow(wr);

Label_num=bwlabel(1-wr,4);
%%% figure, imshow(Label_num);

length=max(Label_num(:));
Color_array(1:length,1:3)=1000;

for i=1:row
    for j=1:col
        Num=Label_num(i,j);
        if(Num==0)
            Image(i,j,1)=255;
            Image(i,j,2)=255;
            Image(i,j,3)=255;
        else
            if(Color_array(Num,1)==1000)
                 Color_array(Num,1)=Image(i,j,1);
                 Color_array(Num,2)=Image(i,j,2);
                 Color_array(Num,3)=Image(i,j,3);
            else
                Image(i,j,1)=Color_array(Num,1);
                Image(i,j,2)=Color_array(Num,2);
                Image(i,j,3)=Color_array(Num,3);
            end
        end
    end
end

G_filter=fspecial('gaussian',6,0.5);
G_image=imfilter(Image, G_filter);
L_filter=[-1 -1 -1; -1 9 -1; -1 -1 -1];
Image=imfilter(G_image, L_filter);

figure, imshow(Image/255);


原图:


效果图:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值