我是一個非常新的程序員(這是我的第二個練習),並且我被要求通過正弦移位將圖像(銀河系)移位。我試圖寫一個程序要做到這一點,如下所示:matlab中的圖像處理
我的程序:
GalaxyImage = imread('hs-2013-06-a-web.jpg');
image(GalaxyImage)
GalaxyImage=double(GalaxyImage)/255;
image(Sess2GalaxyIm(GalaxyImage));
我的功能:
function [GalaxySlanted] = Sess2GalaxyIm(GalaxyImage)
A = 20;
k = 3;
Y = size(GalaxyImage, 1);
X = size(GalaxyImage, 2);
max_shift = ceil(A*2);
GalaxySlanted = zeros(Y, X+max_shift, 3);
for y=1:Y
local_shift = ceil(A*sind(k*y));
local_x = 1:X;
local_x = local_x + local_shift;
GalaxySlanted(y, local_x, :)=GalaxyImage(y, :, :);
end
end
此刻,當我運行它,它似乎只是我的形象不斷變化,我不明白爲什麼。
你能指定什麼是正弦變換嗎?爲什麼你的代碼不起作用? – Acorbe
@Acorbe這是一個正弦波在x軸上的移動,使圖像變形(y中的直線成爲y中的正弦波)。運行我的代碼後,圖像似乎沒有改變,除了它已全部向右移動,並且黑色矩形現在位於左側。 – user3120143