一、简介





2 原理解释

二、源代码


clear all;
close all;
Img = imread('twocells.bmp');  % The same cell image in the paper is used here
Img=double(Img(:,:,1));
sigma=1.5;    % scale parameter in Gaussian kernel for smoothing.
G=fspecial('gaussian',15,sigma);
Img_smooth=conv2(Img,G,'same');  % smooth image by Gaussiin convolution
[Ix,Iy]=gradient(Img_smooth);
f=Ix.^2+Iy.^2;
g=1./(1+f);  % edge indicator function.epsilon=1.5; % the papramater in the definition of smoothed Dirac functiontimestep=5;  % time step
mu=0.2/timestep;  % coefficient of the internal (penalizing) energy term P(\phi)% Note: the product timestep*mu must be less than 0.25 for stability!
lambda=5; % coefficient of the weighted length term L(\phi)
alf=1.5;  % coefficient of the weighted area term A(\phi);% Note: Choose smaller value for weak object bounday, such as the cell image in this demo.% define initial level set function (LSF) as -c, 0, c at points outside, on
% the boundary, and inside of a region R, respectively.
[nrow, ncol]=size(Img);
c0=4;
initialLSF=c0*ones(nrow,ncol);
w=8;
initialLSF(w+1:end-w, w+1:end-w)=0;  % zero level set is on the boundary of R. % Note: this can be commented out. The intial LSF does NOT necessarily need a zero level set.initialLSF(w+2:end-w-1, w+2: end-w-1)=-c0; % negative constant -c inside of R, postive constant c outside of R.
u=initialLSF;
figure;imagesc(Img);colormap(gray);hold on;
[c,h] = contour(u,[0 0],'r');
title('Initial contour');% start level set evolution
for n=1:300u=EVOLUTION(u, g ,lambda, mu, alf, epsilon, timestep, 1);  pause(0.001);if mod(n,20)==0imagesc(Img);colormap(gray);hold on;[c,h] = contour(u,[0 0],'r'); iterNum=[num2str(n), ' iterations'];        title(iterNum);hold off;end
end
% define initial level set function (LSF) as -c, 0, c at points outside, on
% the boundary, and inside of a region R, respectively.
[nrow, ncol]=size(Img);
c=4;
initialLSF=c*ones(nrow,ncol);
w=10;
initialLSF(w+1:end-w, w+1:end-w)=0;  % zero level set is on the boundary of R. % Note: this can be commented out. The intial LSF does NOT necessarily need a zero level set.initialLSF(w+2:end-w-1, w+2: end-w-1)=-c; % negative constant -c inside of R, postive constant c outside of R.
u=initialLSF;
figure;imagesc(Img, [0, 255]);colormap(gray);hold on;
[c,h] = contour(u,[0 0],'r');
title('Initial contour');% start level set evolution
for n=1:500u=EVOLUTION(u, g ,lambda, mu, alf, epsilon, timestep, 1);  pause(0.001);if mod(n,20)==0imagesc(Img, [0, 255]);colormap(gray);hold on;[c,h] = contour(u,[0 0],'r'); iterNum=[num2str(n), ' iterations'];        title(iterNum);hold off;end
end

三、运行结果


【图像分割】基于snake模型的图像分割matlab 源码相关推荐

  1. 【预测模型】基于灰度模型预测房价matlab源码

    1 简介 自2006年开始,房价保持较长时间持续攀升,房价过高已成为一个全社会关注的民生问题.从市场价格内在发展趋势和外部因素影响两方面建立房价构成模型,将居民消费物价指数,房地产开发综合景气指数,土 ...

  2. 【数学建模】基于matlab船舶三自由度MMG模型【含Matlab源码 1925期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数学建模]基于matlab船舶三自由度MMG模型[含Matlab源码 1925期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...

  3. qr-rls算法matlab实现,【预测模型】基于RLS算法进行预测matlab源码

    一.简介 1 概述 递归最小二乘(RLS)算法是一种典型的数据处理方法,由著名学者高斯在1795年提出,高斯认为,根据所获得的观测数据来推断未知参数时,未知参数最可能的值是这样一个数据,即它使各项实际 ...

  4. 【数学建模】基于matlab模拟疫情SEIRS模型【含Matlab源码 2214期】

    一.⛄SEIR模型简介 1 SEIR模型简介 如果所研究的传染病有一定的潜伏期,与病人接触过的健康人并不马上患病,而是成为病原体的携带者,归入 E 类.此时有: 仍有守恒关系 S(t) + E(t) ...

  5. 【元胞自动机】基于matlab元胞自动机3D森林火灾模型【含Matlab源码 656期】

    ⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...

  6. 【元胞自动机】基于matlab元胞自动机模拟SEIR传播模型和采取隔离措施的SEIR模型【含Matlab源码 2181期】

    ⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视.1970 年, 剑桥大学的约翰 · 何顿 ...

  7. 【飞行器】基于matlab GUI四旋飞行器模型【含Matlab源码 2075期】

    ⛄一.四旋翼飞行器简介 0 引 言 四旋翼飞行器由于具有可垂直起降.机动性强.操作方便等诸多优点,在军事和民用场合得到广泛应用,从而成为众多学者的研究热点.四旋翼飞行器是具有四输入.六输出的欠驱动.非 ...

  8. 【图像识别】基于HSV和RGB模型水果分类matlab源码含 GUI

    一.简介 1 RGB颜色空间: RGB(red,green,blue)颜色空间最常用的用途就是显示器系统(计算机.电视机等都是采用RGB颜色空间来进行图像显示).一般来说,电脑,电视机等是利用三个电子 ...

  9. 【元胞自动机】元胞自动机地铁火灾疏散模型【含Matlab源码 246期】

    ⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...

最新文章

  1. [android] 从gallery获取图片
  2. php 构造 析构,php 构造方法和析构方法
  3. 自已写的几个分页的存储过程
  4. Java培训教程分享:变量与常量
  5. chromium net android移植
  6. 在DOS环境下编译及运行java程序教程
  7. Spring的事务管理难点剖析(4):多线程的困惑
  8. pandas判断dataframe中一列是否为日期格式
  9. 未来这五种新经济思维,会让你找到更多的创业机会
  10. 10.一文了解JAVA反射超详尽知乎
  11. FFmpeg源代码简单分析:libavdevice的gdigrab
  12. 中国大学慕课——程序设计与算法(一)第二周测验
  13. GrayRhino轻松解锁卡贴机的越狱插件,不需要任何卡贴
  14. Linux 系统裁剪笔记 软盘2
  15. 前台通过base64传图片到后台的实现方法
  16. OpenCV——Harris、Shi Tomas、自定义、亚像素角点检测
  17. 学习记录:VB.NET.操作ACCESS数据库
  18. 北邮计算机专业的培养方案,现代邮政学院2016级专业培养方案-北京邮电大学.PDF...
  19. oracle判断字符串以什么开头_oracle 如何查找特定字母开头的某个字段?
  20. uni-app开发中,使用ThorUI中的图片上传,自定义接口返回数据修改

热门文章

  1. NEG指令妙用思考题
  2. 常见数据库优化面试题
  3. 接口测试要点及用例设计
  4. 随笔分类 - 零基础学习iOS开发
  5. 智能化、高效化、轻量化 助力 倾斜摄影单体化思路
  6. 《大型网站技术架构:核心原理与案例分析》之读书笔记
  7. 正则表达式实践(看完就会)
  8. 微型计算机k80,微型计算机原理与接口技术课程设计报告智能交通灯控制系统设计(15页)-原创力文档...
  9. 电脑数据传输/数据迁移下载哪款软件好?
  10. Android打开相册并上传图片至服务器