我有圖像:如何替換符合距離標準的像素?
A = [3 1 1 2 2
0 0 0 3 2
0 0 3 3 2
1 1 1 1 2
1 1 1 2 2];
從我得到下列矩陣的圖像:
B = [1,1; 3,3; 2,4; 3,4];
現在,我想測試的每個像素之間的距離在'B'
看到哪些是大於1與下一行中的直接像素進行比較。對於它們之間的距離爲<= 1
的像素,我想用NaN
替換‘A’
中的兩個位置,否則,我會讓它們保持原樣。
我的預期輸出是:
A = [3 1 1 2 2
0 0 0 NaN 2
0 0 NaN NaN 2
1 1 1 1 2
1 1 1 2 2];
我曾嘗試下面的代碼,但我不是很明白,究竟我做錯了。
[row, col] = find(A==3);
B = [row col]
for k = size(B, 1)-1
if sqrt((row(k,:) - (row(k+1,:)))^.2 + (col(k,:) - (col(k+1,:)))^.2) <= 1
A(B(k, :)) = NaN
end
end
請任何幫助,這是非常感謝。非常感謝!
試'A(B(K,1),B(K,2)) = NaN;'而不是 – Shai
Elementwise power operator是'。^'(而不是'^ .') – m7913d
for循環現在沒有意義,你可能想要的是:'for k = 1:size(B,1)-1' – m7913d