2021-10-02

解决error: strel: N for disk shape not yet implemented, use N of 0

使用Octave来编辑matlab文件,发现有些功能octave是还没有实现的,所以会报错,具体的missing function可以参见这里,这里我是以Image Package 的strel的missing function为例,其他的Package可以参见

关于标题的错误,我是参考这里解决的

具体做法

我的原代码

function D_err = disp_error_image (D_gt,D_est,tau,dilate_radius)

if nargin==3
  dilate_radius = 1;
end

[E,D_val] = disp_error_map (D_gt,D_est);
E = min(E/tau(1),(E./abs(D_gt))/tau(2));


cols = error_colormap();

D_err = zeros([size(D_gt) 3]);

for i=1:size(cols,1)
  [v,u] = find(D_val > 0 & E >= cols(i,1) & E <= cols(i,2));
  D_err(sub2ind(size(D_err),v,u,1*ones(length(v),1))) = cols(i,3);
  D_err(sub2ind(size(D_err),v,u,2*ones(length(v),1))) = cols(i,4);
  D_err(sub2ind(size(D_err),v,u,3*ones(length(v),1))) = cols(i,5);
end

D_err = imdilate(D_err,strel('disk',dilate_radius));

报错是在最后一行,因为octave缺失strel的功能,所以就不使用这个函数了,改成以下:

d=ceil(dilate_radius);
x=(-d:d).^2;
se=(x+x.')<dilate_radius.^2;
D_err=imdilate(D_err,se);

上一篇:Bootstrap: 按钮 & 图片


下一篇:圆环加载进度条