Как поменять строки массива uint8? - PullRequest
0 голосов
/ 14 декабря 2018

Я работал над созданием данных для моих 50 файлов изображений после применения пиксельной маркировки.Вывод, который я получаю, выглядит следующим образом [256*256], начиная с 0,0 в командном окне Matlab.Но я хочу, чтобы сначала я получил строку 256, а затем назад, 256, 255, 254, ..., 1. Пример:

desired outcome

После этого я хочу получить

[xmin, ymin, xmax, ymax]

regionprops дает нам [left top width height], но я хочу изменить его на [xmin, ymin, xmax, ymax].

Как я могу выполнить эти две задачи?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Если вы хотите перевернуть изображение вверх ногами, поместив нижний ряд вверху, используйте flipud:

flipped_img = flipud(img);

Если вы хотите повернуть изображение наНа 90 градусов, перемещая левый столбец в нижний ряд, а нижний - в правый, затем используйте rot90:

rotated_img = rot90(img);

Массив p = [left top width height]можно преобразовать в массив t = [xmin, ymin, xmax, ymax] с помощью простой арифметики.Мы берем xmin = left, ymin = top, xmax = xmin + width - 1 и ymax = ymin + height - 1:

t = [p(1:2), p(1:2)+p(3:4)-1];
0 голосов
/ 14 декабря 2018

Я не уверен, что это именно то, что вы ищете, но вы можете использовать функцию imrotate:

J = imrotate(I',90) %Rotates your image 90 degrees counterclockwise
...