【边缘检测】基于元胞自动机图像边缘检测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

三、运行结果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值