如何在 OpenCV Python 中執行矩陣變換?


cv2.transform() 函式執行輸入陣列中每個元素的矩陣變換。由於影像在 OpenCV 中是 NumPy 多維陣列,因此我們可以直接對影像應用此變換。要使用此函式,我們首先應該定義一個變換矩陣 m。輸出中的通道數將與變換矩陣 m 中的行數相同。

步驟

要找到輸入影像的矩陣變換,您可以按照以下步驟操作:

  • 匯入所需的庫 OpenCVNumPy。確保您已安裝它們。

  • 使用 cv2.imread() 方法讀取輸入影像。指定影像的完整路徑。

  • 定義大小為 (3,3) 的變換矩陣 m。您可以生成變換矩陣作為隨機數或定義自定義矩陣。

  • 使用 cv2.transform() 查詢影像的矩陣變換。將變換矩陣 m 作為引數傳遞給 cv2.transform() 函式。

  • 顯示變換後的影像。

讓我們看看下面的示例,以對輸入影像執行矩陣變換。

輸入影像

在下面的示例中,我們將使用以下影像作為輸入檔案。


示例

在此示例中,我們找到輸入影像的矩陣變換。我們將變換矩陣定義為一個 3×3 的隨機數矩陣。

# import required libraries import cv2 import numpy as np # read input image img = cv2.imread('leaf1.jpg') # define transformation matrix m = np.random.randn(3,3) # apply the cv2.transform to perform matrix transformation img_tr = cv2.transform(img, m, None) # display the transformed image cv2.imshow("Transformed Image", img_tr) cv2.waitKey(0) cv2.destroyAllWindows()

輸出

執行上述程式碼後,它將生成以下輸出視窗:


注意 - 由於變換矩陣是使用隨機數生成的,因此您可能會得到顏色和亮度不同的輸出影像。

示例

在此示例中,我們找到輸入影像的矩陣變換。我們將變換矩陣定義為一個 3×3 的全 1 矩陣。

# import required libraries import cv2 import numpy as np # read input image img = cv2.imread('leaf1.jpg') # define transformation matrix m = np.ones((3,3)) # apply the cv2.transform to perform matrix transformation img_tr = cv2.transform(img, m, None) # display the transformed image cv2.imshow("Transformed Image", img_tr) cv2.waitKey(0) cv2.destroyAllWindows()

輸出

執行上述程式碼後,它將生成以下輸出視窗:


更新於: 2022-12-05

5K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告