смещение символа в текстовом изображении на определенное количество пикселей с помощью matlab - PullRequest
0 голосов
/ 07 февраля 2012

У нас есть изображение текстового документа, и мы хотим переместить слово на определенное количество пикселей.Мы написали код, чтобы просто сдвигать 1 букву за раз.Но это было не ясно.Есть ли какая-либо функция или код для перемещения пикселей в MATLAB?

1 Ответ

0 голосов
/ 07 февраля 2012

Если вы хотите переместить всю строку, вы можете использовать функцию circshift () . Я не думаю, что есть код для перемещения только одной части изображения, но если у вас есть координаты слова, это можно сделать довольно легко без.

Если у нас есть изображение b

b =

     0     0     0     0     0
     1     1     0     0     0
     1     1     0     0     0
     0     0     0     0     0
     0     0     0     0     0

и хотим переместить те 3 места вправо, мы можем сделать

shift = 3; 
b(2:3,1+shift:2+shift) = b(2:3,1:2) //copy part of image
b(2:3,1:2) = 0 //Remove orignal part of image

b =

     0     0     0     0     0
     0     0     0     1     1
     0     0     0     1     1
     0     0     0     0     0
     0     0     0     0     0

Вы также можете использовать oneliner для сдвига слова, но он перезапишет что-нибудь между словом и тем, куда вы его перемещаете

b(2:3,1:2+shift) = [zeros(2,shift) b(2:3,1:2)]
...