Virar imagem no MATLAB

Ammar Ali 15 fevereiro 2024
  1. Inverta uma imagem usando a função flip() no MATLAB
  2. Inverter uma imagem usando manipulação de array no MATLAB
Virar imagem no MATLAB

Este tutorial irá discutir como inverter uma imagem verticalmente usando a função flip() no Matlab.

Inverta uma imagem usando a função flip() no MATLAB

As imagens são compostas por pixels. Por exemplo, se você tiver uma imagem de 200 por 200 pixels, o que significa que há 200 pixels no eixo vertical e 200 pixels no eixo horizontal. Temos que ler e armazenar a imagem no Matlab usando a função imread(). Ele será armazenado em um array, e cada elemento do array é o valor de cada pixel da imagem. Para virar a imagem verticalmente, precisamos mudar a posição dos pixels. Por exemplo, a última linha do array se tornará a primeira linha e a primeira que se tornará a última linha e assim por diante. Podemos usar a função integrada do Matlab flip() para inverter uma imagem ou matriz. Por exemplo, vamos inverter uma imagem usando a função flip() no Matlab e mostrá-los no mesmo gráfico usando as funções subplot() e imshow(). Veja o código abaixo.

img = imread('cat.jpg');
img2 = flip(img);
subplot(1,2,1)
imshow(img)
title('Original Image')
subplot(1,2,2)
imshow(img2)
title('Flipped Image')

Resultado:

Imagem invertida usando a função flip() no matlab

Como você pode ver na saída acima, a imagem é invertida verticalmente. Se quisermos inverter a imagem horizontalmente, temos que adicionar um segundo argumento na função flip(), a dimensão do flip(img, 2) semelhante a um array. Por exemplo, na saída acima, invertemos a matriz em colunas e é por isso que a imagem é invertida verticalmente, mas se quisermos inverter a imagem horizontalmente, temos que inverter a matriz em linha. No Matlab, a primeira dimensão de um array é sua coluna e a segunda dimensão são suas linhas. Portanto, para inverter a imagem, temos que passar a dimensão como o segundo argumento na função flip(). Por padrão, a função flip() inverterá a matriz usando a primeira dimensão, que é a coluna. Algumas imagens também possuem uma terceira dimensão que contém as cores da imagem. Se invertermos a terceira dimensão, a imagem não será invertida, mas as cores da imagem serão invertidas ou alteradas.

Inverter uma imagem usando manipulação de array no MATLAB

Também podemos inverter um array usando a manipulação de arrayes no Matlab. Por exemplo, se quisermos inverter uma imagem usando a manipulação de Matrix em vez da função flip(), temos que alterar a função flip(img) no código acima com o código img(end:-1:1,:,:). Neste código, alteramos a posição das entradas da coluna e as outras duas dimensões permanecerão as mesmas. Usamos os dois pontos como o segundo e o terceiro argumentos para que a segunda e a terceira dimensões permaneçam as mesmas. Também podemos mudar a segunda dimensão. Por exemplo, vamos virar a imagem acima verticalmente e também horizontalmente usando a manipulação de array no Matlab. Veja o código abaixo.

img = imread('cat.jpg');
img2 = img(end:-1:1,end:-1:1,:);
subplot(1,2,1)
imshow(img)
title('Original Image')
subplot(1,2,2)
imshow(img2)
title('Flipped Image')

Resultado:

Invertendo a imagem usando manipulação de array

Como você pode ver na saída acima, a imagem é invertida tanto vertical quanto horizontalmente. Podemos inverter apenas uma dimensão de cada vez usando a função flip(), mas podemos inverter várias dimensões usando a manipulação de array. Também podemos inverter um array usando um loop no Matlab.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artigo relacionado - MATLAB Image