0
我想擬合不是完美球體的281 * 398 * 104矩陣的MR二進制數據,並找出球體的中心和半徑以及誤差。我知道LMS或SVD是適合球體的好選擇。使用SVD/LMS擬合球體
我試圖從sphereFit但matlab file exchange得到一個錯誤,
>> sphereFit(data)
Warning: Matrix is singular to working precision.
> In sphereFit at 33
ans =
NaN NaN NaN
你讓我知道問題出在哪裏,或者任何其他的解決辦法?
非常感謝您的回答。抱歉錯誤的超鏈接,我編輯了我用於分析的sphereFit函數的鏈接。 我需要根據我的'數據'(389 * 281 * 52; Row,Col,Slices)修改您的代碼。我無法理解代碼的一些行。所以你會讓我用ones()的目的,雖然我讀了imerode函數但是不能正確理解它。 x,y,z:它們是行,列,輸入數據矩陣的切片。但是,我感謝您的關注@dlegland – Joe
設置我的數據:dataIn = imerode(data,ones([3 3 3])); bnd = data&〜dataIn; inds = find(bnd); [y,x,z] = ind2sub(size(data),inds);點= [x y z]; sphere = sphereFit(points) – Joe
首先,我假設你的數據是一個包含布爾值的3D數組,是嗎? imerode函數的目的是去除位於「靠近」背景的輸入二值圖像的體素。它可以被看作是消除邊界。通過與原始數據相結合,您可以獲得具有白色體素邊界的3D二值圖像。 – dlegland