边缘检测基于元胞自动机图像边缘检测matlab源码
Posted Matlab走起
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了边缘检测基于元胞自动机图像边缘检测matlab源码相关的知识,希望对你有一定的参考价值。
一、简介
元胞自动机(CA)是一种用来仿真局部规则和局部联系的方法。典型的元胞自动机是定义在网格上的,每一个点上的网格代表一个元胞与一种有限的状态。变化规则适用于每一个元胞并且同时进行。典型的变化规则,决定于元胞的状态,以及其( 4 或 8 )邻居的状态。
1 对元胞自动机的初步认识
元胞自动机(CA)是一种用来仿真局部规则和局部联系的方法。典型的元
胞自动机是定义在网格上的,每一个点上的网格代表一个元胞与一种有限的状
态。变化规则适用于每一个元胞并且同时进行。
2 元胞的变化规则&元胞状态
典型的变化规则,决定于元胞的状态,以及其( 4 或 8 )邻居的状态。
3 元胞自动机的应用
元胞自动机已被应用于物理模拟,生物模拟等领域。
4 元胞自动机的matlab编程
结合以上,我们可以理解元胞自动机仿真需要理解三点。一是元胞,在matlab中可以理解为矩阵中的一点或多点组成的方形块,一般我们用矩阵中的一点代表一个元胞。二是变化规则,元胞的变化规则决定元胞下一刻的状态。三是元胞的状态,元胞的状态是自定义的,通常是对立的状态,比如生物的存活状态或死亡状态,红灯或绿灯,该点有障碍物或者没有障碍物等等。
二、源代码
%元胞自动机 边缘提取
clear all
I=imread('lena.bmp');
I=double(I);
figure;imshow(uint8(I));
im=I;
[M,N]=size(I);
im_o=zeros(M,N);
sigma=18;
for t=1:1
for i=2:M-1
for j=2:N-1
% tmp=(im(i-1,j)+im(i+1,j)+im(i,j-1)+im(i,j+1))/4;
% tmp=abs(im(i,j)-tmp);
if (abs(im(i-1,j)-im(i,j))<sigma)&(abs(im(i+1,j)-im(i,j))<sigma)& (abs(im(i,j-1)-im(i,j))<sigma)& (abs(im(i,j+1)-im(i,j))<sigma)
im_o(i,j)=0;
else
im_o(i,j)=im(i,j);
end
% im_o(i,j)=min(im(i,j),tmp);
end
end
三、运行结果
四、备注
完整代码或者仿真咨询添加QQ1575304183
以上是关于边缘检测基于元胞自动机图像边缘检测matlab源码的主要内容,如果未能解决你的问题,请参考以下文章
边缘检测基于matlab八方向sobel图像边缘检测含Matlab源码 1865期
图像边缘检测基于matlab Zernike矩亚像素边缘检测含Matlab源码 1536期
图像边缘检测基于matlab自适应阈值的八方向和四方向sobel图像边缘检测含Matlab源码 2058期
图像边缘检测基于matlab自适应阈值的八方向和四方向sobel图像边缘检测含Matlab源码 2058期