[OpneCV][Python]透視變換矩陣與四個角點教學

更新 發佈閱讀 6 分鐘

什麼是透視變換矩陣?

在影像處理中,**透視變換矩陣(Perspective Transformation Matrix)**是一種可以把一個平面上的四邊形區域,映射到另一個平面上四邊形區域的數學工具。

這個矩陣通常是 3x3 的形式,稱為「單映射矩陣(Homography Matrix)」。

公式

假設原圖上一個點座標是 (x, y),經過透視變換後的新座標 (x', y') 計算如下:

|x'|     |a11 a12 a13|   |x|
|y'| = |a21 a22 a23| * |y|
|w | |a31 a32 a33| |1|

最後 x' = x'/w, y' = y'/w

這種變換可以同時做到平移、旋轉、縮放、斜切,甚至遠近感(透視效果)。


四個角點的意義與用法

在 OpenCV 中,如果你想要把一個矩形區域「拉正」或「變形」,你需要指定這個區域的四個角點

這四個角點,通常是依照順時針或逆時針順序排列,分別代表:

  1. 左上角 (Top-Left)
  2. 右上角 (Top-Right)
  3. 右下角 (Bottom-Right)
  4. 左下角 (Bottom-Left)

範例說明

假設你有一個矩形區域,左上角座標是 (x0, y0),寬度是 W,高度是 H。

你可以這樣定義這個區域的四個角點:

self.template_4corner = [
(x0, y0), # 左上
(x0 + W, y0), # 右上
(x0 + W, y0 + H), # 右下
(x0, y0 + H) # 左下
]

每個點的意義

  • (x0, y0):矩形的左上角
  • (x0 + W, y0):從左上往右移動 W 個像素,得到右上角
  • (x0 + W, y0 + H):從右上往下移動 H 個像素,得到右下角
  • (x0, y0 + H):從左上往下移動 H 個像素,得到左下角

這樣的寫法可以快速產生一個矩形區域的四個角點座標。

圖示說明

(x0, y0)        (x0+W, y0)
+---------------+
| |
| |
| |
+---------------+
(x0, y0+H) (x0+W, y0+H)

實際應用

1. 影像校正

如果你有一張照片,裡面有一張歪斜的紙張,你可以手動標記這張紙的四個角點,然後把它「拉正」成一個矩形。

視覺化說明

原圖(斜斜的紙):

\+-------------------+
| |
| /---------\ |
| / \ |
| / \ |
| \ / |
| \ / |
| \---------/ |
+-------------------+

經過 warpPerspective 後:

+-------------+
| |
| |
| |
| |
+-------------+



2. ROI(感興趣區域)擷取

在自動化檢測、OCR、文件掃描等應用中,常常需要先定義一個矩形區域(ROI),再進行後續處理。

3. 影像對齊

在做模板匹配、影像拼接時,也常常需要用四個角點來對齊不同的區域。


取得透視變換矩陣

你只要有來源區域的四個角點(如上),以及目標區域的四個角點(通常是 [(0,0), (W,0), (W,H), (0,H)]),就可以用 OpenCV 的 cv2.getPerspectiveTransform 來計算出變換矩陣 M:

import numpy as np
import cv2

src_pts = np.float32(self.template_4corner)
dst_pts = np.float32([(0, 0), (W, 0), (W, H), (0, H)])

M = cv2.getPerspectiveTransform(src_pts, dst_pts)

這個 M 就是你要的透視變換矩陣,可以用來做 cv2.warpPerspective 影像變形。


小結

  • 四個角點的順序與座標,決定了你要變形的區域。
  • 只要會組出這四個點,就能輕鬆做出 ROI 擷取、影像拉正、視角校正等功能。
  • 這種寫法在自動化影像處理、工業檢測、文件掃描等領域非常常見。


實際程式範例文章 可參考我另外一篇文章喔

[OpenCV基礎][Python]warpPerspective透視變換



留言
avatar-img
螃蟹_crab的沙龍
169會員
322內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
你可能也想看
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
涉及圖像處理和計算機視覺時,色彩空間轉換是一個常見操作,應用如下: 降維: 將一張彩色圖像轉換為灰度圖像可以減少數據的維度,簡化處理過程,同時在某些情況下保留重要的視覺信息。 突顯特徵: 在某些情況下,某些色彩通道可能包含冗餘或不必要的信息,通過轉換到其他色彩空間,可以更好地突顯圖像中的重要特徵
Thumbnail
涉及圖像處理和計算機視覺時,色彩空間轉換是一個常見操作,應用如下: 降維: 將一張彩色圖像轉換為灰度圖像可以減少數據的維度,簡化處理過程,同時在某些情況下保留重要的視覺信息。 突顯特徵: 在某些情況下,某些色彩通道可能包含冗餘或不必要的信息,通過轉換到其他色彩空間,可以更好地突顯圖像中的重要特徵
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
直方圖是對圖像中像素強度分布的圖形表示。通過分析直方圖,我們可以獲得有關圖像對比度、亮度和色彩分佈的有用信息。
Thumbnail
直方圖是對圖像中像素強度分布的圖形表示。通過分析直方圖,我們可以獲得有關圖像對比度、亮度和色彩分佈的有用信息。
Thumbnail
形態學操作在影像處理中有多種應用,特別是在處理二值化影像(黑白影像)。 在影像處理應用上,基本上都由侵蝕,膨脹這兩種方法,組合搭配而成。 常見應用場景 物體檢測與分割: 形態學操作可以用於增強或改善二值化影像中的物體邊界,使得物體的檢測和分割更加準確。
Thumbnail
形態學操作在影像處理中有多種應用,特別是在處理二值化影像(黑白影像)。 在影像處理應用上,基本上都由侵蝕,膨脹這兩種方法,組合搭配而成。 常見應用場景 物體檢測與分割: 形態學操作可以用於增強或改善二值化影像中的物體邊界,使得物體的檢測和分割更加準確。
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
瞭解二值化影像的應用和程式語法,包括物體檢測和分割、邊緣檢測、圖像分析和測量、文檔辨識,以及使用cv2.threshold的參數和程式範例。
Thumbnail
瞭解二值化影像的應用和程式語法,包括物體檢測和分割、邊緣檢測、圖像分析和測量、文檔辨識,以及使用cv2.threshold的參數和程式範例。
Thumbnail
廢話不多說,先上成果圖。 成果圖 主要實現方法 1.灰階後利用cv2.Canny找物體的邊緣 2.找物件相對應的直線cv2.HoughLines 3.分類為橫向和垂直的直線角度,求得相對於物件的旋轉角度 4.根據算出的相對應旋轉角度將物件轉正
Thumbnail
廢話不多說,先上成果圖。 成果圖 主要實現方法 1.灰階後利用cv2.Canny找物體的邊緣 2.找物件相對應的直線cv2.HoughLines 3.分類為橫向和垂直的直線角度,求得相對於物件的旋轉角度 4.根據算出的相對應旋轉角度將物件轉正
Thumbnail
觀看本文將可以學習到如何利用Numpy求得物件的邊緣點,及算出物件的寬跟高。 有詳細的程式邏輯說明,及各函式用法說明。 綠點及紅點則是採樣到的邊界點,比較粗的點是偵測到的最大值 完整程式碼 import cv2 import numpy as np import matplotl
Thumbnail
觀看本文將可以學習到如何利用Numpy求得物件的邊緣點,及算出物件的寬跟高。 有詳細的程式邏輯說明,及各函式用法說明。 綠點及紅點則是採樣到的邊界點,比較粗的點是偵測到的最大值 完整程式碼 import cv2 import numpy as np import matplotl
Thumbnail
直方圖均衡化處理是一種通過調整圖像的直方圖來改變圖像外觀和質量的圖像處理技術。這通常涉及對圖像的亮度、對比度和顏色分佈進行調整 此方法對於背景和前景均亮或均暗的影像很有用。​並在曝光過度或曝光不足的照片中獲得更好的細節。
Thumbnail
直方圖均衡化處理是一種通過調整圖像的直方圖來改變圖像外觀和質量的圖像處理技術。這通常涉及對圖像的亮度、對比度和顏色分佈進行調整 此方法對於背景和前景均亮或均暗的影像很有用。​並在曝光過度或曝光不足的照片中獲得更好的細節。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News