在 MATLAB 中翻轉影象

Ammar Ali 2024年2月15日
  1. 使用 MATLAB 中的 flip() 函式翻轉影象
  2. 在 MATLAB 中使用矩陣操作翻轉影象
在 MATLAB 中翻轉影象

本教程將討論使用 Matlab 中的 flip() 函式垂直翻轉影象。

使用 MATLAB 中的 flip() 函式翻轉影象

影象由畫素組成。例如,如果你有一個 200 x 200 畫素的影象,這意味著垂直軸上有 200 個畫素,水平軸上有 200 個畫素。我們必須使用 imread() 函式在 Matlab 中讀取和儲存影象。它將儲存在一個矩陣中,矩陣的每個元素都是影象的每個畫素的值。要垂直翻轉影象,我們需要改變畫素的位置。例如,矩陣的最後一行將成為第一行,第一個誰將成為最後一行,依此類推。我們可以使用 Matlab 內建函式 flip() 來翻轉影象或矩陣。例如,讓我們使用 Matlab 中的 flip() 函式翻轉影象,並使用 subplot()imshow() 函式將它們顯示在同一圖上。請參閱下面的程式碼。

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')

輸出:

使用 matlab 中的 flip()函式翻轉影象

正如你在上面的輸出中看到的,影象被垂直翻轉。如果我們想水平翻轉影象,我們必須在 flip() 函式中新增第二個引數,即類似矩陣的 flip(img, 2) 的維度。例如,在上面的輸出中,我們已經按列翻轉了矩陣,為什麼影象是垂直翻轉的,但是如果我們想水平翻轉影象,我們必須按行翻轉矩陣。在 Matlab 中,矩陣的第一維是它的列,第二維是它的行。因此,要翻轉影象,我們必須將維度作為 flip() 函式中的第二個引數傳遞。預設情況下,flip() 函式將使用第一維(即列)翻轉矩陣。一些影象還有第三維,其中包含圖片中的顏色。如果我們翻轉第三維,影象不會翻轉,但影象的顏色會翻轉或改變。

在 MATLAB 中使用矩陣操作翻轉影象

我們還可以使用 Matlab 中的矩陣操作來翻轉矩陣。例如,如果我們想使用矩陣操作而不是 flip() 函式來翻轉影象,我們必須將上面程式碼中的 flip(img) 函式更改為 img(end:-1:1,:,:)。在這段程式碼中,我們改變了列條目的位置,其他兩個維度將保持不變。我們使用冒號作為第二個和第三個引數,以便第二個和第三個維度保持不變。我們也可以改變第二維。例如,讓我們使用 Matlab 中的矩陣操作垂直和水平翻轉上面的影象。請參閱下面的程式碼。

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')

輸出:

使用矩陣操作翻轉影象

正如你在上面的輸出中看到的,影象被垂直和水平翻轉。我們一次只能使用 flip() 函式翻轉一個維度,但我們可以使用矩陣操作翻轉多個維度。我們還可以使用 Matlab 中的迴圈來翻轉矩陣。

作者: 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

相關文章 - MATLAB Image