八度的三维bwdist函数

时间:2017-06-07 09:36:08

标签: image octave

来自八度音阶的Image Package提供bwdist函数,该函数与Matlab的bwdistLink)不同,因为它仅适用于二维矩阵,而不是三维的。

Matlabs bwdist函数是否也有类似函数可以处理三维矩阵?

1 个答案:

答案 0 :(得分:0)

不,只需自己写一个,例如

HttpContent httpContent = new StringContent("Your JSON-String", Encoding.UTF8, "application/json-patch+json");

唯一的缺点是它不会那么优化,但它应该做到这一点 PS:请注意,这仅供参考;很明显,上述功能缺乏所有必要的输入检查/消毒,任何适当的功能都应该有。

<小时/> 编辑:以上

的完全矢量化版本
function Out = bwdist3D (Obj)
  Obj        = logical (Obj);
  ObjSize    = size (Obj);
  ObjIndices = find (Obj == true);
  [X, Y, Z] = ndgrid (1 : ObjSize(1), 1 : ObjSize(2), 1 : ObjSize(3)); 

  Out = zeros ([ObjSize, length(ObjIndices)]);
  for Iter = 1 : length (ObjIndices)
    [x, y, z] = ind2sub (ObjSize, ObjIndices(Iter));
    Out(:, :, :, Iter) = sqrt ((X - x).^2 + (Y - y).^2 + (Z - z).^2 );      
  end  

  Out = min (Out, [], 4);
end

PS:代码高尔夫最好:p