перевернуть и повернуть цветное изображение в MATLAB - PullRequest
21 голосов
/ 24 октября 2010

Как перевернуть цветное изображение (RGB) в MATLAB? fliplr, похоже, не работает без потери цветового содержимого, поскольку имеет дело только с 2D.

Кроме того, imrotate может не поворачивать цветные изображения.

Ответы [ 4 ]

23 голосов
/ 25 октября 2010

Функция flipdim будет работать для матриц ND, тогда как функции flipud и fliplr работают только для двумерных матриц:

img = imread('peppers.png');     %# Load a sample image
imgMirror = flipdim(img,2);      %# Flips the columns, making a mirror image
imgUpsideDown = flipdim(img,1);  %# Flips the rows, making an upside-down image

ПРИМЕЧАНИЕ: В более поздних версиях MATLAB (R2013b и новее) теперь рекомендуется использовать flip вместо flipdim.

20 голосов
/ 25 октября 2010

Пример:

I = imread('onion.png');
I2 = I(:,end:-1:1,:);           %# horizontal flip
I3 = I(end:-1:1,:,:);           %# vertical flip
I4 = I(end:-1:1,end:-1:1,:);    %# horizontal+vertical flip

subplot(2,2,1), imshow(I)
subplot(2,2,2), imshow(I2)
subplot(2,2,3), imshow(I3)
subplot(2,2,4), imshow(I4)

alt text

2 голосов
/ 07 августа 2013

imrotate вращение цветных изображений B = IMROTATE (A, ANGLE) поворачивает изображение A на угол ANGLE в направлении против часовой стрелки вокруг его центральной точки.

0 голосов
/ 05 февраля 2016

Я знаю, что уже поздно, но поскольку flipdim теперь устарел, другие ответы больше не действительны.Вы можете использовать flip или сделать это другим, умным способом:

I = imread('onion.png');

% flip left-right, or up-down:

Iflipud = flip(I, 1)
Ifliplr = flip(I, 2)

% or:
Iflipud = I(size(I,1):-1:1,:,:);
Ifliplr = I(:,size(I,1):-1:1,:);

% flip both left-right, and up-down, stupid way:
Iflipboth = I(size(I,1):-1:1,size(I,1):-1:1,:);

% flip both left-right, and up-down, smart way:):
Iflipboth = imrotate(I, 180)

Как уже указывалось, imrotate работает как с цветными изображениями, так и с оттенками серого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...