本帖最后由 fuyunchao 于 2018-7-25 16:53 编辑

在运行一个FABEMD的程序,出现以下报错,其中se_rep是fabemd的一个子函数。网上也有很多类似的问题,但是程序不一样也看不懂,希望专家或者朋友或者老师们帮忙看看,谢谢

已达到最大递归限制 500。使用 set(0,'RecursionLimit',N) 可更改此限制。请注意,超出可用堆栈空间可能会使 MATLAB 和/或计算机崩溃。

出错 se_rep

运行程序如下:

A=imread('childern.tif');

H=fabemd(A);

出错函数是:

function r = se_rep(SE)

% se_rep - representation type of structuring element

% ---------------------------------------------------

%

% r = se_rep(SE)

%

% Input:

% ------

%  SE - structuring element

%

% Output:

% -------

%  r - representation type 'mat', 'vec', or ''

%--------------------------------

% Author: Harold Figueroa

%--------------------------------

% $Date: 2006-06-06 17:29:13 -0400 (Tue, 06 Jun 2006) $

% $Revision: 5169 $

%--------------------------------

[m, n] = size(SE);

if (n == 2) && all(round(SE(:)) == SE(:))

r = 'vec';

elseif rem(m, 2) && rem(n, 2) && all((SE(:) ~= 0) == SE(:))

r = 'mat';

else

r = ''; % not a structuring element

if ~nargout

warning('Input is not a structuring element.');

end

end

fabemd函数为:

function Y = fabemd(X, opt)

% fabemd - fast adaptive bidimensional EMD

% ----------------------------------------

%

% Y = fabemd(X, opt)

%

% Input:

% ------

%  X - image

%  opt - options

%

% Output:

% -------

%  Y - BIMF array

% TODO: save intermediate computations, specifically extrema

% NOTE: consider a single coded image for extrema across iterations

%--

% handle input

%--

if nargin < 2

opt.type = 4;

opt.radial = false;

opt.verb = 1;

if ~nargin && nargout

Y = opt; return;

end

end

if ~nargout || opt.verb

figure; imagesc(X), colorbar; colormap(gray(256)); axis('image');

end

for k = 1:3

[L, U] = get_envelopes(X, opt);

Y(:, :, k) = X - 0.5 * (L + U);

X = X - Y(:, :, k);

end

Y(:, :, end + 1) = X;

if ~nargout || opt.verb

for k = 1:size(Y, 3), figure; imagesc(Y(:,:,k)), colorbar; cmap_real(129); axis image; end

end

%-----------------------

% GET_ENVELOPES

%-----------------------

% NOTE: this is essentially a method of the EMD computation

function [L, U, E] = get_envelopes(X, opt)

% get_envelopes - for image

% -------------------------

%

% [L, U, E] = get_envelopes(X, opt)

%

% Input:

% ------

%  X - image

%  opt - options, coming from parent

%

% Output:

% -------

%  L, U - lower and upper envelopes

%  E - extrema indicator

%--

% compute image extrema

%--

[E, count] = image_extrema(X); %#ok

% TODO: consider count before we move on

%--

% compute extrema distances and radius of operations given type

%--

[p(:, 1), p(:, 2)] = find(E == 1, 2000);

pd = fast_nearest(p'); pd = pd(:, 1);

[v(:, 1), v(:, 2)] = find(E == -1, 2000);

vd = fast_nearest(v'); vd = vd(:, 1);

switch opt.type

case 1 % min-min

r = min(min(pd), min(vd));

case 2 % max-min

r = max(min(pd), min(vd));

case 3 % min-max

r = min(max(pd), max(vd));

case 4 % max-max

r = max(max(pd), max(vd));

end

r = next_odd(r);

%--

% compute envelopes

%--

% NOTE: we should be able to make use of CUDA acceleration for all steps below

% TODO: improve filtering, improve filter

if opt.radial

SE = se_ball(r); F = SE / se_size(SE);

else

SE = ones(r); F = SE / r^2;

end

% NOTE: 'morph' functions decompose the structuring element, below we decompose the linear filter

L = morph_erode(X, SE); U = morph_dilate(X, SE);

L = box_filter(L, F) / r^2;

U = box_filter(U, F) / r^2;

matlab 递归限制,已达到最大递归限制 500。使用 set(0,'RecursionLimit',N) 可更改...相关推荐

  1. matlab用之前的计算结果递归,[转载]Matlab正则表达式(递归、匹配上下文等)(转载)...

    元字符 描述 .点 匹配任何单个字符.例如正则表达式r.t匹配这些字符串:rat.rut.r t,但是不匹配root. $ 匹配行结束符.例如正则表达式weasel$ 能够匹配字符串"He' ...

  2. 归并排序(基于顺序容器vector_递归;基于数组array_递归_非递归)

    代码1:基于顺序容器vector 1 /*2 * FILE: merge_sort_vector.cpp3 * ---------------------------4 * DATE: 2017081 ...

  3. “递归三要素”寻踪(浅析递归“经典”框架,领略递归优雅秀气;看到有“递归算法优化”的操作,余试剖之)

    浅析递归"经典"框架,领略递归优雅秀气.看到有"递归算法优化"的操作,余试剖之. [学习的细节是欢悦的历程] Python 官网:https://www.pyt ...

  4. java实现递归下降分析_使用递归实现检查未知层级目录中的文件-Java实用技能

    现在有这样一个需求,给你一个目录,需要你在此目录中查找全部名字中包含指定字符的文件. 这题的主要难点在于:目录中可能包含子目录,子目录中又会包含子目录.而我们事先没办法确定子目录到底有多少层!这时候就 ...

  5. python递归详解_Python理解递归的方法总结

    递归 一个函数在执行过程中一次或多次调用其本身便是递归,就像是俄罗斯套娃一样,一个娃娃里包含另一个娃娃. 递归其实是程序设计语言学习过程中很快就会接触到的东西,但有关递归的理解可能还会有一些遗漏,下面 ...

  6. 递归的效率问题及递归与循环比较

    1.所谓的递归慢到底是什么原因呢? 大家都知道递归的实现是通过调用函数本身,函数调用的时候,每次调用时要做地址保存,参数传递等,这是通过一个递归工作栈实现的.具体是每次调用函数本身要保存的内容包括:局 ...

  7. python递归 数字全排列_利用递归实现全排列(python)

    利用递归实现全排列(python) """ 利用递归实现全排列 第一个位置可能有n种可能,第二个位置可能 有n-1种可能...... 代码思路就是第一个位置可以和n个元素 ...

  8. 可能存在无限递归_你为什么学不会递归?读完这篇文章轻松理解递归算法

    对于很多编程初学者来说,递归算法是学习语言的最大障碍之一.很多人也是半懂不懂,结果学到很深的境地也会因为自己基础不好,导致发展太慢. 可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却 ...

  9. python递归和循环的区别_递归与伪递归区别,Python 实现递归与尾递归

    递归函数在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函 数.(1) 递归就是在过程或函数里调用自身.(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出 ...

最新文章

  1. 《GPU高性能编程CUDA实战》中代码整理
  2. python基本语法语句-第二章 python基本语法元素
  3. SqlDataAdapter上调用存储过程
  4. C++——override
  5. python解析库详解_PyQuery库详解
  6. Css学习总结(3)——CSS布局解决方案 - 水平、垂直居中、多列布局、全屏布局
  7. ethercat如何编程 台达50mc_台达可编程控制器DVP-50MC系列产品介绍
  8. 04 . Filebeat简介原理及配置文件和一些案例
  9. 缓存穿透、缓存击穿、缓存雪崩概念及解决方案
  10. CE修改器修改游戏数据实例
  11. CS5211,CS5212,CS5256,CS5811,CS5288资料
  12. 第三章:SCI论文写作经验分享
  13. Prometheus 告警配置以及抑制规则inhibit_rules 说明
  14. 个人理财类书籍推荐 -- From一亩三分地 帖子
  15. 向无所不能逼近的算法 逻辑与算法之一
  16. 计算机视觉动画视频插帧难点、流程及改进
  17. M1 Mac安装 PS 2021 闪退、卡启动界面解决方法
  18. 什么是触发器,MySQL都有哪些触发器?
  19. 高级程序设计语言的共性内容
  20. 丁益祥c语言答案pdf,丁益祥|

热门文章

  1. 落地DevOps,探索高效研发运营一体化解决方案
  2. Wcf 服务http请求总结
  3. BluetoothOpp共享文件(一)之蓝牙设备选择
  4. 中国现有国家级风景名胜区
  5. 软件工程专业毕业生的就业前景如何,如何扩展自身的就业空间
  6. KILL THE PHARAOH ACUPUNCTURE X 法老联乘系列发布
  7. Firebird 数据库使用心得
  8. 解决git clone时出现Failed to connect to github.com port 443: Timed out的问题
  9. 小冰与51CTO的前世今生
  10. 定制加载loading 图片