图像分割是图像分析的关键步骤,而水平集方法是图像分割的一项热门方法,它有着许多

  • 虫虫123456
    了解作者
  • matlab
    开发工具
  • 138.3KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 5 积分
    下载积分
  • 0
    下载次数
  • 2022-07-05 00:51
    上传日期
图像分割是图像分析的关键步骤,而水平集方法是图像分割的一项热门方法,它有着许多算法不具有的优点,尤其可用于分割背景复杂信息难以提取的医学图像。这里是一些水平集分割图像的matlab的实现例子,希望可以帮到大家。(Image segmentation is the key step of image analysis, while the level set method is a popular image segmentation method, it has many advantages that the algorithm does not have, especially can be used for medical image segmentation of complex background information is difficult to extract. Here is some level set segmentation image matlab example, I hope we can help you.)
2LevelSetMethods.rar
  • 2LevelSetMethods
  • init_normal_ENO3.m
    231B
  • der_ENO1_plus.m
    618B
  • evolve_normal_vector_ENO3_SD.m
    1.6KB
  • evolve_vector_ENO2.m
    672B
  • der_WENO_minus.m
    1.6KB
  • get_dt_normal_vector.m
    363B
  • select_der_normal.m
    901B
  • curvature.m
    1.7KB
  • evolve_vector_ENO3.m
    672B
  • evolve_vector_ENO1.m
    674B
  • evolve_normal_vector_ENO1.m
    1.3KB
  • init_kappa.m
    256B
  • evolve_normal_vector_ENO1_SD.m
    1.7KB
  • evolve2D.m
    10.8KB
  • evolve_kappa.m
    1.7KB
  • select_der_normal_vector_SD.m
    1.1KB
  • evolve_normal_vector_WENO.m
    1.3KB
  • init_normal_WENO.m
    231B
  • init_normal_ENO2.m
    231B
  • reinit_SD.m
    1.6KB
  • get_dt_vector_kappa.m
    396B
  • evolve_normal_vector_ENO2.m
    1.3KB
  • upwind_ENO3.m
    1.8KB
  • init_normal_ENO1.m
    231B
  • get_dt_normal.m
    356B
  • init_vector_WENO.m
    301B
  • init_vector_ENO1.m
    299B
  • get_dt_vector.m
    351B
  • evolve_vector_WENO.m
    673B
  • evolve_normal_vector_WENO_SD.m
    1.6KB
  • der_ENO2_minus.m
    1.2KB
  • evolve_normal_ENO1.m
    1.4KB
  • der_ENO1_minus.m
    624B
  • retina.bmp
    123.7KB
  • evolve_normal_vector_ENO3.m
    1.3KB
  • LLF_normal_vector.m
    2.4KB
  • der_ENO3_plus.m
    1.5KB
  • test.m
    1.4KB
  • evolve_normal_ENO2.m
    1.4KB
  • evolve_normal_vector_ENO2_SD.m
    1.6KB
  • get_dt_kappa.m
    360B
  • init_vector_ENO2.m
    299B
  • der_WENO_plus.m
    1.6KB
  • get_dt_normal_kappa.m
    399B
  • der_ENO3_minus.m
    1.5KB
  • kappa.bmp
    1.6KB
  • upwind_ENO1.m
    1KB
  • upwind_ENO2.m
    1.6KB
  • der_ENO2_plus.m
    1.2KB
  • init_vector_ENO3.m
    299B
  • get_dt_normal_vector_kappa.m
    408B
  • evolve_normal_ENO3.m
    1.4KB
  • evolve_normal_WENO.m
    1.4KB
  • upwind_WENO.m
    2KB
内容介绍
function [phi] = evolve2D(phi, dx, dy, alpha, iterations, accuracy, is_signed_distance, normal_evolve, Vn, vector_evolve, u, v, kappa_evolve, b) % % function [phi] = evolve2D(phi, dx, dy, iterations, accuracy, ... % is_signed_distance, normal_evolve, Vn, vector_evolve, u, v, kappa_evolve, b) % % Calculates evolution for a 2D curve (3D level set function) phi. % phi is the input level set function. % % dx and dy are the resolution of the grid at x and y dimensions. % alpha is a constant for calculating the euler step (dt). Should % be between 0 and 1. 0.5 is quite safe whereas 0.9 can be risky. % iterations specifies the number of iterations before the function returns. % normal_evolve, vector_evolve, kappa_evolve should be either set to 0 and 1. This % indicates if these forces are present or not. If any of these are set to 1, % corresponding variables (e.g. Vn, u, v, b) should not be an empty array []. if % either normal_evolve or vector_evolve are set to 1, accuracy needs to be specified, % otherwise accuracy can be set to an empty array. Allowed values for accuracy are % 'ENO1', 'ENO2', 'ENO3', 'WENO'. These correspond to 1st, 2nd, 3rd and 5th order % accurate schemes for calculating the derivative of phi. if both normal_evolve and % vector_evolve are set to 1, then is_signed_distance needs to be specified. If phi is % approximately a signed distance function, set this variable to 1. If % is_signed_distance == 1, Godunov scheme will be used, otherwise Stencil Local % Lax-Friedrichs (SLLF) scheme will be used (See Osher&Fedkiw section 6.4). % % Other variables (these are either a scalar or of the same size as phi): % Vn: Force in the normal direction. % u: x component of the vector field % v: y component of the vector field % b: this specifies the weighting for the curvature (always positive everywhere). % % Author: Baris Sumengen sumengen@ece.ucsb.edu % http://vision.ece.ucsb.edu/~sumengen/ % tic if alpha <= 0 | alpha >= 1 error('alpha needs to be between 0 and 1!'); end % expand parameters if they are scalar if length(Vn) == 1 Vn = Vn.*ones(size(phi)); end if length(u) == 1 u = u.*ones(size(phi)); end if length(v) == 1 v = v.*ones(size(phi)); end if length(b) == 1 b = b.*ones(size(phi)); end % Understand what kind of evolution the user is interested in. if (normal_evolve == 1) & (vector_evolve == 1) & (kappa_evolve == 1) evolution_type = 'normal_vector_kappa'; if isempty(Vn) | isempty(u) | isempty(v) | isempty(b) error('Some of the variables should not be empty!') end switch(accuracy) case 'ENO1' init_normal = @init_normal_ENO1; init_vector = @init_vector_ENO1; if is_signed_distance == 1 evolve_normal_vector = @evolve_normal_vector_ENO1_SD; else evolve_normal_vector = @evolve_normal_vector_ENO1; end case 'ENO2' init_normal = @init_normal_ENO2; init_vector = @init_vector_ENO2; if is_signed_distance == 1 evolve_normal_vector = @evolve_normal_vector_ENO2_SD; else evolve_normal_vector = @evolve_normal_vector_ENO2; end case 'ENO3' init_normal = @init_normal_ENO3; init_vector = @init_vector_ENO3; if is_signed_distance == 1 evolve_normal_vector = @evolve_normal_vector_ENO3_SD; else evolve_normal_vector = @evolve_normal_vector_ENO3; end case 'WENO' init_normal = @init_normal_WENO; init_vector = @init_vector_WENO; if is_signed_distance == 1 evolve_normal_vector = @evolve_normal_vector_WENO_SD; else evolve_normal_vector = @evolve_normal_vector_WENO; end otherwise error('Desired type of the accuracy is not correctly specified!'); end elseif (normal_evolve == 1) & (vector_evolve == 1) & (kappa_evolve == 0) evolution_type = 'normal_vector'; if isempty(Vn) | isempty(u) | isempty(v) error('Some of the variables should not be empty!') end switch(accuracy) case 'ENO1' init_normal = @init_normal_ENO1; init_vector = @init_vector_ENO1; if is_signed_distance == 1 evolve_normal_vector = @evolve_normal_vector_ENO1_SD; else evolve_normal_vector = @evolve_normal_vector_ENO1; end case 'ENO2' init_normal = @init_normal_ENO2; init_vector = @init_vector_ENO2; if is_signed_distance == 1 evolve_normal_vector = @evolve_normal_vector_ENO2_SD; else evolve_normal_vector = @evolve_normal_vector_ENO2; end case 'ENO3' init_normal = @init_normal_ENO3; init_vector = @init_vector_ENO3; if is_signed_distance == 1 evolve_normal_vector = @evolve_normal_vector_ENO3_SD; else evolve_normal_vector = @evolve_normal_vector_ENO3; end case 'WENO' init_normal = @init_normal_WENO; init_vector = @init_vector_WENO; if is_signed_distance == 1 evolve_normal_vector = @evolve_normal_vector_WENO_SD; else evolve_normal_vector = @evolve_normal_vector_WENO; end otherwise error('Desired type of the accuracy is not correctly specified!'); end elseif (normal_evolve == 1) & (vector_evolve == 0) & (kappa_evolve == 1) evolution_type = 'normal_kappa'; if isempty(Vn) | isempty(b) error('Some of the variables should not be empty!') end switch(accuracy) case 'ENO1' init_normal = @init_normal_ENO1; evolve_normal = @evolve_normal_ENO1; case 'ENO2' init_normal = @init_normal_ENO2; evolve_normal = @evolve_normal_ENO2; case 'ENO3' init_normal = @init_normal_ENO3; evolve_normal = @evolve_normal_ENO3; case 'WENO' init_normal = @init_normal_WENO; evolve_normal = @evolve_normal_WENO; otherwise error('Desired type of the accuracy is not correctly specified!'); end elseif (normal_evolve == 1) & (vector_evolve == 0) & (kappa_evolve == 0) evolution_type = 'normal'; if isempty(Vn) error('Some of the variables should not be empty!') end switch(accuracy) case 'ENO1' init_normal = @init_normal_ENO1; evolve_normal = @evolve_normal_ENO1; case 'ENO2' init_normal = @init_normal_ENO2; evolve_normal = @evolve_normal_ENO2; case 'ENO3' init_normal = @init_normal_ENO3; evolve_normal = @evolve_normal_ENO3; case 'WENO' init_normal = @init_normal_WENO; evolve_normal = @evolve_normal_WENO; otherwise error('Desired type of the accuracy is not correctly specified!'); end elseif (normal_evolve == 0) & (vector_evolve == 1) & (kappa_evolve == 1) evolution_type = 'vector_kappa'; if isempty(u) | isempty(v) | isempty(b) error('Some of the variables should not be empty!') end switch(accuracy) case 'ENO1' init_vector = @init_vector_ENO1; evolve_vector = @evolve_vector_ENO1; case 'ENO2' init_vector = @init_vector_ENO2; evolve_vector = @evolve_vector_ENO2; case 'ENO3' init_vector = @init_vector_ENO3; evolve_vector = @evolve_vector_ENO3; case 'WENO' init_vector = @init_vector_WENO; evolve_vector = @evolve_vector_WENO; otherwise error('Desired type of the accuracy is not correctly specified!'); end elseif (normal_evolve == 0) & (vector_evolve == 1) & (kappa_evolve == 0) evolution_type = 'vector'; if isempty(u) | isempty(v) error('Some of the variables should not be empty!') end switch(accuracy) case 'ENO1' init_vector = @init_vector_ENO1; evolve_vector = @evolve_vector_ENO1; case 'ENO2' init_vector = @init_vector_ENO2; evolve_vector = @evolve_vector_ENO2; case 'ENO3' init_vector = @init_vector_ENO3; evolve_vector = @evolve_vector_ENO3; case 'WENO' init_vector = @init_vector_WENO; evolve_vector = @evolve_vector_WENO; otherwise error('Desired type of the accuracy is not correctly specified!'); end elseif (normal_evolve == 0) & (vector_evolve == 0) & (kappa_evolve == 1) evolution_type = 'kappa'; if isempty(b) error('Some of the variables should not be empty!') end else error('Incorrect input parameters! normal_evolve, vecto
评论
    相关推荐
    • 滤波噪声模型.zip
      均值、高斯、中值三种基本的滤波方法与噪声模型
    • 滤波.zip
      matlab中值滤波函数,有效去除噪声干扰
    • 双边滤波.rar
      双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折中处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。
    • 卡尔曼滤波.zip
      卡尔曼滤波,温度和运动跟踪样例程序,二十个字怎么还没到
    • 滤波.rar
      利用matlab编程实现中值滤波和均值滤波的代码。
    • 中值滤波.zip
      matlab编程对带椒盐噪声的图片进行中值滤波处理
    • 自适应滤波
      基于自适应滤波算法,MATLAB源代码程序
    • 卡尔曼滤波的matlab程序
      卡尔曼滤波的matlab程序,可以下载参考
    • 卡尔曼滤波.zip
      卡尔曼滤波用于数据滤波,是去除噪声还原真实数据的一种数据处理技术
    • 滤波代码.rar
      能够对带有噪声的图片进行图像滤波处理,包含有多种滤波方式方法