解决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);