0
H = [1 1; 1 2; 2 -1; 2 0; -1 2; -2 1; -1 -1; -2 -2;]';
我需要閾值,使得邊界值:閾值函數
H(I,j) = 0 if H(I,j) > =1,
else H(I,j) = 1 if H(I,j) <=0
我應用這個代碼
a = H(1,1)
a(a<=0) = 1
a(a>=1) = 0
每個值但這意味着在第一個已經影響值步驟可能會再次改變。閾值的正確方法是什麼?上面的代碼給出了不正確的答案。我應該得到
a = [0 0; 0 0; 0 1; 0 1; 1 0; 1 0; 1 1; 1 1]
請幫
編輯
基於答案我現在越來越
0 0
0 0
1.0000 0.3443
0.8138 0.9919
0 0.7993
0.1386 1.0000
1.0000 1.0000
1.0000 1.0000
可以看出,第3-6行都是不正確。請幫助
謝謝您的回覆,其中的作品,但並不適用於所有情況。例如,有一些實際數值不受影響。我已經更新了我的問題。請看看實際的數值,以及如何限制他們的範圍> – SKM
@SKM這可能是[比較浮動值的常見問題](http://stackoverflow.com/questions/686439/why-is- 24-0000-不等於到24-0000合MATLAB)。要解決這個問題,定義一個容差並將其應用於比較。查看更新後的答案(第二部分) –
我已經這樣做了,因爲我猜mythreshold函數是不正確的。現在是正確的,而不是應用寬容? ind1 = H> 0; ind2 = H <= 0; H(ind1)= 0; H(ind2)= 0; H(ind2)= 1; – SKM