matlab 递归限制,已达到最大递归限制 500。使用 set(0,'RecursionLimit',N) 可更改...
本帖最后由 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) 可更改...相关推荐
- matlab用之前的计算结果递归,[转载]Matlab正则表达式(递归、匹配上下文等)(转载)...
元字符 描述 .点 匹配任何单个字符.例如正则表达式r.t匹配这些字符串:rat.rut.r t,但是不匹配root. $ 匹配行结束符.例如正则表达式weasel$ 能够匹配字符串"He' ...
- 归并排序(基于顺序容器vector_递归;基于数组array_递归_非递归)
代码1:基于顺序容器vector 1 /*2 * FILE: merge_sort_vector.cpp3 * ---------------------------4 * DATE: 2017081 ...
- “递归三要素”寻踪(浅析递归“经典”框架,领略递归优雅秀气;看到有“递归算法优化”的操作,余试剖之)
浅析递归"经典"框架,领略递归优雅秀气.看到有"递归算法优化"的操作,余试剖之. [学习的细节是欢悦的历程] Python 官网:https://www.pyt ...
- java实现递归下降分析_使用递归实现检查未知层级目录中的文件-Java实用技能
现在有这样一个需求,给你一个目录,需要你在此目录中查找全部名字中包含指定字符的文件. 这题的主要难点在于:目录中可能包含子目录,子目录中又会包含子目录.而我们事先没办法确定子目录到底有多少层!这时候就 ...
- python递归详解_Python理解递归的方法总结
递归 一个函数在执行过程中一次或多次调用其本身便是递归,就像是俄罗斯套娃一样,一个娃娃里包含另一个娃娃. 递归其实是程序设计语言学习过程中很快就会接触到的东西,但有关递归的理解可能还会有一些遗漏,下面 ...
- 递归的效率问题及递归与循环比较
1.所谓的递归慢到底是什么原因呢? 大家都知道递归的实现是通过调用函数本身,函数调用的时候,每次调用时要做地址保存,参数传递等,这是通过一个递归工作栈实现的.具体是每次调用函数本身要保存的内容包括:局 ...
- python递归 数字全排列_利用递归实现全排列(python)
利用递归实现全排列(python) """ 利用递归实现全排列 第一个位置可能有n种可能,第二个位置可能 有n-1种可能...... 代码思路就是第一个位置可以和n个元素 ...
- 可能存在无限递归_你为什么学不会递归?读完这篇文章轻松理解递归算法
对于很多编程初学者来说,递归算法是学习语言的最大障碍之一.很多人也是半懂不懂,结果学到很深的境地也会因为自己基础不好,导致发展太慢. 可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却 ...
- python递归和循环的区别_递归与伪递归区别,Python 实现递归与尾递归
递归函数在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函 数.(1) 递归就是在过程或函数里调用自身.(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出 ...
最新文章
- 《GPU高性能编程CUDA实战》中代码整理
- python基本语法语句-第二章 python基本语法元素
- SqlDataAdapter上调用存储过程
- C++——override
- python解析库详解_PyQuery库详解
- Css学习总结(3)——CSS布局解决方案 - 水平、垂直居中、多列布局、全屏布局
- ethercat如何编程 台达50mc_台达可编程控制器DVP-50MC系列产品介绍
- 04 . Filebeat简介原理及配置文件和一些案例
- 缓存穿透、缓存击穿、缓存雪崩概念及解决方案
- CE修改器修改游戏数据实例
- CS5211,CS5212,CS5256,CS5811,CS5288资料
- 第三章:SCI论文写作经验分享
- Prometheus 告警配置以及抑制规则inhibit_rules 说明
- 个人理财类书籍推荐 -- From一亩三分地 帖子
- 向无所不能逼近的算法 逻辑与算法之一
- 计算机视觉动画视频插帧难点、流程及改进
- M1 Mac安装 PS 2021 闪退、卡启动界面解决方法
- 什么是触发器,MySQL都有哪些触发器?
- 高级程序设计语言的共性内容
- 丁益祥c语言答案pdf,丁益祥|