神经网络 | Matlab实现PCNN(脉冲耦合神经网络)的显微图像处理

博主github:https://github.com/MichaelBeechan
博主CSDN:https://blog.csdn.net/u011344545

%------Pulse Coupled Neural Network-----------    
%------名称:脉冲耦合神经网络(PCNN)

   
function H = PCNN2(I) 
I = imread('BanLanGen.png'); 
figure,imshow(I);
title('原始图像');
th = graythresh(I);
I = im2bw(I,th);
%H = Pcnn(I,30); 


%************************************************************ 
% Initialize Function 
%************************************************************ 
[m,n] = size (I); 
figure,imshow(I);
title('二值图像');
X = im2double(I); 


%************************************************************ 
% Initialize PCNN Parameters 
%************************************************************ 
% P :L E F VF VL VE beta 
% V: 1.0 1.0 0.1 0.5 0.2 20 0.1 
al = 1.0; ae = 1.0; af = 0.1; vf = 0.5; vl = 0.2; ve = 20; B = 0.1; 
W =[0.5 1 0.5;... 
        1 0 1;...    
        0.5 1 0.5]; 
M = W; Y = zeros(m,n); F = Y; L = Y; U = Y; E = Y; 


%************************************************************ 
% PCNN 点火过程 
%************************************************************ 
for i = 1:30 
    wk = conv2(Y,M,'same');
    F = exp(-af).* F + vf.* wk + X; 
    L = exp(-al).* L + vl.* wk; 
    U = F.*(1 + B.* L); 
    Y = double(U>E); 
    E = exp(-ae).* E + ve.* Y; 
end
figure,imshow(Y)
title('PCNN处理后图像');
fs = fspecial('sobel');
filter_Y = imfilter(Y, fs);
figure,imshow(filter_Y); 
title('滤波图像');

发布了127 篇原创文章 · 获赞 117 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/u011344545/article/details/45168821
今日推荐