Сдвиньте матрицу изображений m * n на matlab вправо - PullRequest
0 голосов
/ 26 октября 2018

У меня в настоящее время есть матрица изображения m * n точек серой шкалы. Я хочу сдвинуть изображение вправо на определенное количество пикселей. Следующий код, кажется, сдвигает его вправо и вверх. Как я могу это исправить? Мне нужно сделать какую-то матричную операцию, чтобы сдвиг, чтобы встроенные функции не работали.

% Performs a shift on an input image matrix
function shift(CBout, matrix)    
    [m,n]=size(CBout);
    T=ones(m,n)*200;

    CBout = T+CBout;

    plot(CBout(1,:), CBout(2,:), 'k.');
    scale = 400;
    axis([-scale scale -scale scale])
end

1 Ответ

0 голосов
/ 26 октября 2018

Я смог понять это.Я просто создал вектор единиц, а затем добавил его в первую строку матрицы mxn.

% Performs a shift on an input image matrix
function shift(CBout, amount)
    disp('Shifting...');

    n = size(CBout, 2);
    T=ones(1,n)*amount;

    % Add shift amount to every element in the first row
    CBout = [CBout(1,:)+T; CBout(2,:)];

    plot(CBout(1,:), CBout(2,:), 'k.');
    scale = 400;
    axis([-scale scale -scale scale])
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...