当前位置:网站首页>【图像特征提取】基于脉冲耦合神经网络(PCNN)实现图像特征提取含Matlab源码
【图像特征提取】基于脉冲耦合神经网络(PCNN)实现图像特征提取含Matlab源码
2022-06-24 06:41:00 【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的神经元模型。

2 部分代码
<span style="color:#333333"><span style="background-color:rgba(0, 0, 0, 0.03)"><code>i=imread('蒲公英.png'); </code><code>%g=rgb2gray(i); </code><code>g = i(:,:,2);</code><code>subplot(221),imshow(g); </code><code>xlabel('原图像');</code><code>I = im2bw(g);</code><code>subplot(222),imshow(I); </code><code>xlabel('原图像二值化');</code><code>[m,n] = size (g); </code><code>X = im2double(g); </code><code>%<strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong> </code><code>% Initialize PCNN Parameters </code><code>%<strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong> </code><code>% P :L E F VF VL VE beta </code><code>% V: 1.0 1.0 0.1 0.5 0.2 20 0.1 </code><code>al = 1.0; ae = 1.0; af = 0.1; vf = 0.5; vl = 0.2; ve = 20; B = 0.1; </code><code>W =[0.5 1 0.5;... </code><code> 1 0 1;... </code><code> 0.5 1 0.5]; </code><code>M = W; Y = zeros(m,n); F = Y; L = Y; U = Y; E = Y; </code><code>%<strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong> </code><code>% PCNN 点火过程 </code><code>%<strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong><strong>*****</strong> </code><code>for i = 1:30</code><code> wk = conv2(Y,M,'same');</code><code> F = exp(-af).* F + vf.* wk + X; </code><code> L = exp(-al).* L + vl.* wk; </code><code> U = F.*(1 + B.* L); </code><code> Y = double(U>E); </code><code> E = exp(-ae).* E + ve.* Y; </code><code>end</code><code>subplot(223),imshow(Y); </code><code>xlabel('PCNN图像');</code><code></code><code>im=imadjust(Y,[],[],1.5); </code><code></code><code>bw=im2bw(im); </code><code>subplot(224),imshow(bw); </code><code>xlabel('PCNN图像二值化');</code><code></code><code></code><code>bw1=bwmorph(bw,'remove');</code><code>bw1 = bwareaopen(bw1,4);</code><code>[L,num]=bwlabel(bw1,8)%计算测量面积内晶粒的个数n </code><code></code><code>se=strel('disk',3);%创建圆盘形strel对象 </code><code>bwc=imclose(~bw,se);%对取反后的二值图像进行闭运算 </code><code>bwco=imopen(bwc,se);%对闭运算后的图像进行开运算 </code><code>bwco1=~bwco; </code><code>a=bwarea(bwco)/(bwarea(bwco)+bwarea(bwco1)) %计算第二相所占面积百分比 </code><code></code></span></span>3 仿真结果

4 参考文献
[1]刘勍, 许录平, 马义德, & 王勇. (2010). 基于脉冲耦合神经网络的图像nmi特征提取及检索方法. 自动化学报(7), 8.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
边栏推荐
- 如何删除/选择电脑上的输入法
- Huawei cloud image engine service
- How to make a website? What should I pay attention to when making a website?
- 展锐芯片之GPU频率
- Can the small fire Chunfeng tea make its debut by "keeping fit"?
- Spark参数调优实践
- NVIDIA control panel does not open what is NVIDIA control panel
- GPU frequency of zhanrui chip
- [problem solving] virtual machine configuration static IP
- Coding helps promote the internationalization of Tencent games
猜你喜欢
随机推荐
Can the small fire Chunfeng tea make its debut by "keeping fit"?
Implementation and usage analysis of static pod
机器人迷雾之算力与智能
树莓派4B开发板入门
Computing power and intelligence of robot fog
云监控系统 HertzBeat v1.1.0 发布,一条命令开启监控之旅!
Multi sensor fusion track fusion
Spark parameter tuning practice
JVM调试工具-jvisualvm
[security] how to [host security - hybrid cloud version] support secure access to non Tencent virtual machines
Spark项目打包优化实践
What is the role of domain name websites? How to query domain name websites
App management platform app host
EasyDSS_ The dash version solves the problem that the RTSP source address cannot play the video stream
What is the OSI seven layer model? What is the role of each layer?
为什么要用lock 【readonly】object?为什么不要lock(this)?
The third session of freshman engineering education seminar is under registration
JSON online parsing and the structure of JSON
With a goal of 50million days' living, pwnk wants to build a "Disneyland" for the next generation of young people
Vmware tools still exist after normal uninstallation for many times. How to solve it









