【图像特征提取】基于脉冲耦合神经网络(PCNN)实现图像特征提取含Matlab源码

1 简介

脉冲耦合神经网络(PCNN——Pulse Coupled Neural Network),由于其非常接近人类大脑的生物神经网络的特性,现已广泛应用在图像处理中,是一种重要的信息处理工具,具有优良的自适应图像分割和自适应特征提取能力。尽管PCNN 输出脉冲序列具有旋转、尺度、平移、扭曲等畸变不变性,同时还包含了原始激励的边缘、纹理、区域等信息,但如果目标有细微差别,PCNN 往往不能很好识别。本文有机的运用了PCNN的自适应特征提取能力结合体视学的研究提出了一种计算中药材显微图像目标二相面积的方法,然后从Hu矩不变矩特征方面入手应用算法得出了中药材显微图像的七种不变矩特征。中药材显微图像特征提取对中药材的识别具有重要意义。

1990年,由Eckhorn等人提出并且发起的对猫等哺乳动物的视觉皮层神经元脉冲振荡(同步振荡)现象的研究[]促使了脉冲耦合神经网络(PCNN—Pulse Coupled Neural Network)的初步形成和迅速发展。Eckhorn发现刺激神经元输入会引起视觉皮层的不同区域出现此种现象,然而这些区域的这种局部特性却具有相似性。因此,他认为视觉系统中存在某种机制,能够将局部性质联系起来成为一种整体特性,即以相似性集群的特性。并进一步提出了一种展现脉冲发放现象的脉冲连接模型。而后Johson发表了论文,阐述了PCNN的一种周期波动现象和PCNN在图像处理中具有旋转、尺度、信号扭曲和信号强度不变性。并先后对Eckhorn提出的网络模型进行了改进,由此得到了如今被广泛应用的脉冲耦合神经网络(PCNN)模型。PCNN是由若干神经元互连而成的、以迭代运算为主的单层二维局部连接的反馈型的脉冲神经网络模型。与其它的人工神经网络相比有着显著的区别,PCNN可以进行无监督自学习,其参数不需要进行提前训练,属于第三代神经网络模型,具有优良的自学习图像分割和自学习图像特征提取。因此非常适合实时图像处理的环境下。图1为PCNN的神经元模型。

【图像特征提取】基于脉冲耦合神经网络(PCNN)实现图像特征提取含Matlab源码_第1张图片

2 部分代码

i=imread('蒲公英.png'); %g=rgb2gray(i); g = i(:,:,2);subplot(221),imshow(g); xlabel('原图像');I = im2bw(g);subplot(222),imshow(I); xlabel('原图像二值化');[m,n] = size (g); X = im2double(g); %************************************************************ % 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; endsubplot(223),imshow(Y); xlabel('PCNN图像');im=imadjust(Y,[],[],1.5); bw=im2bw(im); subplot(224),imshow(bw); xlabel('PCNN图像二值化');bw1=bwmorph(bw,'remove');bw1 = bwareaopen(bw1,4);[L,num]=bwlabel(bw1,8)%计算测量面积内晶粒的个数n se=strel('disk',3);%创建圆盘形strel对象 bwc=imclose(~bw,se);%对取反后的二值图像进行闭运算 bwco=imopen(bwc,se);%对闭运算后的图像进行开运算 bwco1=~bwco; a=bwarea(bwco)/(bwarea(bwco)+bwarea(bwco1)) %计算第二相所占面积百分比 

3 仿真结果

【图像特征提取】基于脉冲耦合神经网络(PCNN)实现图像特征提取含Matlab源码_第2张图片

4 参考文献

[1]刘勍, 许录平, 马义德, & 王勇. (2010). 基于脉冲耦合神经网络的图像nmi特征提取及检索方法. 自动化学报(7), 8.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

你可能感兴趣的:(图像处理,神经网络,matlab,计算机视觉)