0
我在Matlab中編寫了一個函數,該函數在圖像'I'和條目中輸入兩個長度,並返回一個圖像'輸出',其大小與我在其中像素根據長度條目。執行的翻譯是循環的,即當翻譯後的像素的像素超出I的某個維度時,它將放置在與此維度相關的軸的位置d處。在Matlab中向量化代碼
該函數使用兩個for循環,我想對它進行矢量化以便以更快的方式執行。
function [ output ] = translated(I,horizontal_translation, vertical_translation)
output=I;
[H , W]=size(I);
sx=horizontal_translation; sy=vertical_translation;
for i=1:H
for j=1:W
if i+sx>H
i_=mod(i+sx,H);
else
i_=i+sx;
end
if j+sy>W
j_=mod(j+sy,W);
else
j_=j+sy;
end
output(i_,j_)=I(i,j);
end
end
end
你根本不需要調用模函數,只是'[sy:W 1:sy-1]'另外,似乎H和W是相反的? –