资源简介
写了一些关于图像写了一些关于图像最大类间方差阈值和遗传算法的例子,程序含有说明解释,适合初学者。例子,程序含有说明解释,适合初学者。

代码片段和文件信息
function [EdgeNumberofaera]=pcnn(X)
% 功能:采用PCNN算法进行边缘检测
% 输入:X—输入的灰度图像
% 输出:Edge—检测到的 Numberofaera—表明了在各次迭代时激活的块区域
figure(1);
imshow(X);
X=double(X);
% 设定权值
Weight=[0.07 0.1 0.07;0.1 0 0.1;0.07 0.1 0.07];
WeightLI2=[-0.03 -0.03 -0.03;-0.03 0 -0.03;-0.03 -0.03 -0.03];
d=1/(1+sum(sum(WeightLI2)));
%%%%%%测试权值%%%%%%
WeightLI=[-0.03 -0.03 -0.03;-0.03 0.5 -0.03;-0.03 -0.03 -0.03];
d1=1/(sum(sum(WeightLI)));
%%%%%%%%%%%%%%%%%%
Beta=0.4;
Yuzhi=245;
%衰减系数
Decay=0.3;
[ab]=size(X);
V_T=0.2;
%门限值
Threshold=zeros(ab);
S=zeros(a+2b+2);
Y=zeros(ab);
%点火频率
Firate=zeros(ab);
n=1;
%统计循环次数
count=0;
Tempu1=zeros(ab);
Tempu2=zeros(a+2b+2);
%%%%%%图像增强部分%%%%%%
Out=zeros(ab);
Out=uint8(Out);
for i=1:a
for j=1:b
if(i==1|j==1|i==a|j==b)
Out(ij)=X(ij);
else
H=[X(i-1j-1) X(i-1j) X(i-1j+1);
X(ij-1) X(ij) X(ij+1);
X(i+1j-1) X(i+1j) X(i+1j+1)];
temp=d1*sum(sum(H.*WeightLI));
Out(ij)=temp;
end
end
end
figure(2);
imshow(Out);
%%%%%%%%%%%%%%%%%%%
for count=1:30
for i0=2:a+1
for i1=2:b+1
V=[S(i0-1i1-1) S(i0-1i1) S(i0-1i1+1);
S(i0i1-1) S(i0i1) S(i0i1+1);
S(i0+1i1-1) S(i0+1i1) S(i0+1i1+1)];
L=sum(sum(V.*Weight));
V2=[Tempu2(i0-1i1-1) Tempu2(i0-1i1) Tempu2(i0-1i1+1);
Tempu2(i0i1-1) Tempu2(i0i1) Tempu2(i0i1+1);
Tempu2(i0+1i1-1) Tempu2(i0+1i1) Tempu2(i0+1i1+1)]; F=X(i0-1i1-1)+sum(sum(V2.*WeightLI2));
%保证侧抑制图像无能量损失
F=d*F;
U=double(F)*(1+Beta*double(L));
Tempu1(i0-1i1-1)=U;
if U>=Threshold(i0-1i1-1)|Threshold(i0-1i1-1)<60
T(i0-1i1-1)=1;
Threshold(i0-1i1-1)=Yuzhi;
%点火后一直置为1
Y(i0-1i1-1)=1;
else
T(i0-1i1-1)=0;
Y(i0-1i1-1)=0;
end
end
end
Threshold=exp(-Decay)*Threshold+V_T*Y;
%被激活过的像素不再参与迭代过程
if n==1
S=zeros(a+2b+2);
else
S=Bianhuan(T);
end
n=n+1;
count=count+1;
Firate=Firate+Y;
figure(3);
imshow(Y);
Tempu2=Bianhuan(Tempu1);
end
Firate(find(Firate<10))=0;
Firate(find(Firate>=10))=10;
figure(4);
imshow(Firate);
%%%%%%子函数 %%%%%%%
function Y=Jiabian(X)
[mn]=size(X);
Y=zeros(m+2n+2);
for i=1:m+2
for j=1:n+2
if i==1&j~=1&j~=n+2
Y(ij)=X(1j-1);
elseif j==1&i~=1&i~=m+2
Y(ij)=X(i-11);
elseif i~=1&j==n+2&i~=m+2
Y(ij)=X(i-1n);
elseif i==m+2&j~=1&j~=n+2
Y(ij)=X(mj-1);
elseif i==1&j==1
Y(ij)=X(ij);
elseif i==1&j==n+2
Y(ij)=X(1n);
elseif i==(m+2)&j==1
Y(ij)=X(m1);
elseif i==m+2&j==n+2
Y(ij)=X(mn);
else
Y(ij)=X(i-1j-1);
end
end
end
%%%%%%子函数%%%%%%
function Y=Bianhuan(X)
[mn]=size(X
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14059 2011-06-06 21:07 3.25 基于脉冲耦合神经网络的图像分割\lena.JPG
文件 3695 2012-02-15 23:28 3.25 基于脉冲耦合神经网络的图像分割\pcnn.m
文件 24064 2011-09-26 22:47 3.25 基于脉冲耦合神经网络的图像分割\程序运行说明.doc
目录 0 2019-06-18 09:26 3.25 基于脉冲耦合神经网络的图像分割
----------- --------- ---------- ----- ----
41818 4
相关资源
- 基于OpenCV的数字识别468815
- 带式输送机托辊红外图像分割与定位
- 基于libsvm的图像分割代码
- 基于朴素贝叶斯分类法的图像分割
- 复杂背景与天气条件下的棉花叶片图
- 舌图像分割
- 图像分割方法在遥感图像分析中的应
-
Accurate subpixel edge location ba
sed on pa - 图像分割算法研究区域分割,数学形
- 基于图切算法的交互式图像分割技术
- 纹理图像分割论文+代码
- Dence CRF 条件随机场图像分割
- 图像分割-章毓晋
- Matalb图像分割边缘检测算子比较
- 交互式图像分割——算法与系统
- ITK入门教程_医学图像分割与配准_高清
- Canny算子分割遥感影像
- 分水岭图像分割算法C++程序源代码
- 基于形态学的图像分割 图片版
- CrackForest数据集
- 基于粒子群优算法的最大熵多阈值图
- 医学图像分割与配准(ITK实现 全2册)
- 章毓晋《图像分割》.PDF
- image segmentor source code and release 图像分
- 图像分割算法的实现
- 经典纹理图像分割论文+代码
- 医学图像分割全部代码
- 基于PCNN的彩色图像自动分割毕业论文
- CUDA的图像分割并行算法的设计与实现
- 马尔科夫随机场图像分割ICM代码
评论
共有 条评论