国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

opencv-25 圖像幾何變換04- 透視 cv2.warpPerspective()

這篇具有很好參考價值的文章主要介紹了opencv-25 圖像幾何變換04- 透視 cv2.warpPerspective()。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

什么是透視?

透視是一種幾何學(xué)概念,用于描述在三維空間中觀察物體時,由于視角的不同而產(chǎn)生的變形效果。在現(xiàn)實世界中,當(dāng)我們從不同的角度或位置觀察物體時,它們會呈現(xiàn)出不同的形狀和大小。這種現(xiàn)象被稱為透視效果。

透視效果主要由以下幾個因素造成:

遠(yuǎn)近關(guān)系:在視野范圍內(nèi),離我們更遠(yuǎn)的物體看起來較小,而離我們更近的物體看起來較大。這是因為我們在觀察時,遠(yuǎn)處的物體在視平面上的投影較小。

平行線收斂:在透視效果下,遠(yuǎn)離觀察者的平行線在視覺上會似乎收斂到一個點,被稱為消失點。這使得在遠(yuǎn)處的物體線條會看起來更加趨向于一點。

視角變化:觀察物體的視角改變,物體的形狀和大小也會發(fā)生變化。例如,當(dāng)我們傾斜或移動頭部時,看到的物體會有不同的形態(tài)。

透視效果在繪畫、攝影、計算機(jī)圖形學(xué)等領(lǐng)域都起著重要的作用。在繪畫中,藝術(shù)家通常使用透視來創(chuàng)造真實感和深度感。在攝影中,攝影師可以利用透視來拍攝令人驚嘆的遠(yuǎn)景和近景照片。在計算機(jī)圖形學(xué)中,透視是渲染真實感圖像的重要技術(shù)之一。

在圖像處理中,透視變換是一種將圖像投影到一個新的視角或平面的方法,以實現(xiàn)校正透視畸變、改變圖像視角等目的。通過透視變換,可以將圖像中的內(nèi)容按照一定的規(guī)則進(jìn)行調(diào)整,從而達(dá)到所需的效果。

opencv 透視的應(yīng)用場景

OpenCV中透視變換的應(yīng)用場景非常廣泛,它可以在許多不同的領(lǐng)域和任務(wù)中發(fā)揮重要作用。以下是一些使用OpenCV透視變換的常見應(yīng)用場景:

  1. 圖像校正與糾正:
    透視變換可以用于校正圖像中的透視畸變,例如攝像頭拍攝的傾斜建筑物或文檔圖像。通過找到正確的透視變換矩陣,可以將圖像變換為在平面上正常顯示的形式。
  2. 圖像拼接與全景圖像:
    在全景圖像拼接中,透視變換用于將多個圖像對齊并拼接成一個更大的全景圖像。通過透視變換,可以校正相機(jī)的視角,以便拼接后的圖像具有連貫的視覺效果。
  3. 車道線檢測與車道保持:
    在自動駕駛或駕駛輔助系統(tǒng)中,透視變換可用于檢測車道線并保持車輛在車道中心行駛。通過將圖像轉(zhuǎn)換為鳥瞰視角,車道線在圖像中將呈現(xiàn)為直線,便于車道線檢測算法的實現(xiàn)。
  4. 物體檢測與識別:
    在計算機(jī)視覺中,透視變換可以用于改變圖像的視角,從而便于對物體進(jìn)行檢測和識別。例如,通過將圖像轉(zhuǎn)換為俯視視角,可以更容易地檢測和跟蹤行人或車輛。
  5. 視頻穩(wěn)定與追蹤:
    在視頻穩(wěn)定和目標(biāo)追蹤中,透視變換可用于穩(wěn)定視頻或?qū)⒛繕?biāo)區(qū)域轉(zhuǎn)換到固定視角,以便進(jìn)行更穩(wěn)健的跟蹤。
  6. 增強(qiáng)現(xiàn)實 (AR) 應(yīng)用:
    在AR應(yīng)用中,透視變換可以用于將虛擬對象與真實世界中的物體進(jìn)行融合,從而實現(xiàn)更真實的增強(qiáng)現(xiàn)實體驗。
  7. 文檔掃描與識別:
    在文檔掃描與識別應(yīng)用中,透視變換可用于校正文檔圖像中的透視畸變,從而確保文本和圖像的水平和垂直對齊。

這些只是OpenCV透視變換的一些常見應(yīng)用場景,實際上,透視變換在計算機(jī)視覺和圖像處理中有著廣泛的應(yīng)用,幫助我們解決各種復(fù)雜的視覺任務(wù)。

透視變換通過函數(shù) cv2.warpPerspective()實現(xiàn),該函數(shù)的語法是:

dst = cv2.warpPerspective( src, M, dsize[, flags[, borderMode[, borderValue]]] )

式中:
? dst 代表透視處理后的輸出圖像,該圖像和原始圖像具有相同的類型。dsize 決定輸出圖
像的實際大小。
? src 代表要透視的圖像。
? M 代表一個 3×3 的變換矩陣。
? dsize 代表輸出圖像的尺寸大小。
? flags 代表插值方法,默認(rèn)為 INTER_LINEAR。當(dāng)該值為 WARP_INVERSE_MAP 時,

意味著 M 是逆變換類型,能實現(xiàn)從目標(biāo)圖像 dst 到原始圖像 src 的逆變換。具體可選值
參見表 5-1。
? borderMode 代表邊類型, 默認(rèn)為 BORDER_CONSTANT 。 當(dāng) 該值為 BORDER_
TRANSPARENT 時,意味著目標(biāo)圖像內(nèi)的值不做改變,這些值對應(yīng)原始圖像內(nèi)的異常值。

borderValue 代表邊界值,默認(rèn)是 0。
與仿射變換一樣,同樣可以使用一個函數(shù)來生成函數(shù) cv2.warpPerspective()所使用的轉(zhuǎn)換矩陣。

該函數(shù)是 cv2.getPerspectiveTransform(),其語法格式為:

retval = cv2.getPerspectiveTransform( src, dst )

式中:
? src 代表輸入圖像的四個頂點的坐標(biāo)。
? dst 代表輸出圖像的四個頂點的坐標(biāo)。

需要注意的是, src 參數(shù)和 dst 參數(shù)是包含四個點的數(shù)組,與仿射變換函數(shù) cv2.getAffineTransform() 中的三個點是不同的。實際使用中,我們可以根據(jù)需要控制 src 中的四
個點映射到 dst 中的四個點。

實驗:完成圖像透視

import cv2
import numpy as np
img=cv2.imread('demo.bmp')
rows,cols=img.shape[:2]
print(rows,cols)
pts1 = np.float32([[150,50],[400,50],[60,450],[310,450]])
pts2 = np.float32([[50,50],[rows-50,50],[50,cols-50],[rows-50,cols-50]])
M=cv2.getPerspectiveTransform(pts1,pts2)
dst=cv2.warpPerspective(img,M,(cols,rows))
cv2.imshow("img",img)
cv2.imshow("dst",dst)
cv2.waitKey()
cv2.destroyAllWindows()

指定原始圖像中平行四邊形的四個頂點 pts1,指定目標(biāo)圖像中矩形的四個頂點
pts2,使用 M=cv2.getPerspectiveTransform(pts1,pts2)生成轉(zhuǎn)換矩陣 M。接下來,使用語句
dst=cv2.warpPerspective(img,M,(cols,rows))完成從平行四邊形到矩形的轉(zhuǎn)換。

運(yùn)行效果:

opencv-25 圖像幾何變換04- 透視 cv2.warpPerspective(),opencv,opencv,人工智能,計算機(jī)視覺

實驗原圖:

opencv-25 圖像幾何變換04- 透視 cv2.warpPerspective(),opencv,opencv,人工智能,計算機(jī)視覺文章來源地址http://www.zghlxwxcb.cn/news/detail-609109.html

到了這里,關(guān)于opencv-25 圖像幾何變換04- 透視 cv2.warpPerspective()的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • opencv-22 圖像幾何變換01-縮放-cv2.resize()(圖像增強(qiáng),圖像變形,圖像拼接)

    opencv-22 圖像幾何變換01-縮放-cv2.resize()(圖像增強(qiáng),圖像變形,圖像拼接)

    幾何變換是計算機(jī)圖形學(xué)中的一種圖像處理技術(shù),用于對圖像進(jìn)行空間上的變換,而不改變圖像的內(nèi)容。這些變換可以通過對圖像中的像素位置進(jìn)行調(diào)整來實現(xiàn)。 常見的幾何變換包括: 平移(Translation) :將圖像在水平和/或垂直方向上進(jìn)行平移,即將圖像的每個像素沿著指

    2024年02月15日
    瀏覽(22)
  • Opencv-C++筆記 (16) : 幾何變換 (圖像的翻轉(zhuǎn)(鏡像),平移,旋轉(zhuǎn),仿射,透視變換)

    Opencv-C++筆記 (16) : 幾何變換 (圖像的翻轉(zhuǎn)(鏡像),平移,旋轉(zhuǎn),仿射,透視變換)

    圖像旋轉(zhuǎn)是指圖像按照某個位置轉(zhuǎn)動一定的角度的過程,旋轉(zhuǎn)中圖像仍保持著原始尺寸。圖像旋轉(zhuǎn)后圖像水平對稱軸、垂直對稱軸及中心坐標(biāo)原點都可能會發(fā)生變換,因此需要對圖像旋轉(zhuǎn)中的坐標(biāo)進(jìn)行相應(yīng)轉(zhuǎn)換。 假設(shè)有一個點:P(x,y),它在繞原點 O(0,0) 旋轉(zhuǎn) β 后,被轉(zhuǎn)換成

    2024年02月14日
    瀏覽(109)
  • opencv warpPerspective透視變換實現(xiàn)原理與過程

    opencv warpPerspective透視變換實現(xiàn)原理與過程

    【版權(quán)聲明】 本文為博主原創(chuàng)文章,未經(jīng)博主允許嚴(yán)禁轉(zhuǎn)載,我們會定期進(jìn)行侵權(quán)檢索。 ????????cv2.warpPerspective函數(shù)是OpenCV庫中用于執(zhí)行透視變換的函數(shù)之一。它可以將圖像從一個透視投影轉(zhuǎn)換為另一個透視投影,實現(xiàn)圖像的旋轉(zhuǎn)、縮放、平移等操作。該操作可表示為:

    2024年04月09日
    瀏覽(20)
  • 初學(xué)opencv c++學(xué)習(xí)筆記(五)透視變換--warpPerspective()

    初學(xué)opencv c++學(xué)習(xí)筆記(五)透視變換--warpPerspective()

    這篇博客將用簡單的口吻談一談透視變換是啥以及如何操作~ ? ?但是這篇博客,只要你看了,我相信會有收獲~~~~~~~ ~~~~~~~~~?? ~~~~~~~~~ 目錄 一、透視變換介紹 1.基礎(chǔ)介紹: 二、透視變換apl介紹----?warpPerspective() 1.官方定義 2.參數(shù)解釋 三、搭配apl介紹----?getPerspectiveTransform()

    2024年01月21日
    瀏覽(22)
  • opencv圖像仿射變換,cv2.warpAffine

    opencv圖像仿射變換,cv2.warpAffine

    目錄 仿射變換原理介紹 cv2.warpAffine函數(shù)介紹 代碼實例? ? ? ? ? 仿射變換 ,又稱 仿射映射 ,是指在幾何中,一個向量空間進(jìn)行一次線性變換并接上一個平移,變換為另一個向量空間。 ????????在有限維的情況,每個仿射變換可以由一個矩陣A和一個向量b給出,它可以寫

    2024年02月05日
    瀏覽(96)
  • OpenCV-Python學(xué)習(xí)(21)—— OpenCV 圖像幾何變換之圖像翻轉(zhuǎn)(cv.flip、np.flip)

    OpenCV-Python學(xué)習(xí)(21)—— OpenCV 圖像幾何變換之圖像翻轉(zhuǎn)(cv.flip、np.flip)

    1. 學(xué)習(xí)目標(biāo) 學(xué)習(xí) OpenCV 圖像的翻轉(zhuǎn)函數(shù) cv.flip; 學(xué)習(xí) NumPy 矩陣的反轉(zhuǎn)函數(shù) np.flip; 自己實現(xiàn)矩陣反轉(zhuǎn)的函數(shù)。 2. OpenCV 翻轉(zhuǎn) 翻轉(zhuǎn)也稱鏡像,是指將圖像沿軸線進(jìn)行軸對稱變換。水平鏡像是將圖像沿垂直中軸線進(jìn)行左右翻轉(zhuǎn),垂直鏡像是將圖像沿水平中軸線進(jìn)行上下翻轉(zhuǎn),水平

    2024年02月06日
    瀏覽(84)
  • OpenCV-Python學(xué)習(xí)(20)—— OpenCV 圖像幾何變換之圖像旋轉(zhuǎn)(cv.warpAffine、cv.getRotationMatrix2D、cv.rotate、np.rot90)

    OpenCV-Python學(xué)習(xí)(20)—— OpenCV 圖像幾何變換之圖像旋轉(zhuǎn)(cv.warpAffine、cv.getRotationMatrix2D、cv.rotate、np.rot90)

    1. 學(xué)習(xí)目標(biāo) 學(xué)習(xí)旋轉(zhuǎn)矩陣; 學(xué)習(xí)使用 OpenCV 的 cv.warpAffine 函數(shù)進(jìn)行圖片的旋轉(zhuǎn); 學(xué)習(xí)使用 OpenCV 的 cv.getRotationMatrix2D 來計算不同旋轉(zhuǎn)中心的不同角度的 MAR 旋轉(zhuǎn)變換矩陣; 學(xué)習(xí)使用 OpenCV 的 cv.rotate 進(jìn)行特殊角度的旋轉(zhuǎn)(90,180,270 度)。 2. 不同中心的旋轉(zhuǎn)矩陣計算 2.1 圖像

    2024年02月09日
    瀏覽(19)
  • 我在Vscode學(xué)OpenCV 幾何變換(縮放、翻轉(zhuǎn)、仿射變換、透視、重映射)

    我在Vscode學(xué)OpenCV 幾何變換(縮放、翻轉(zhuǎn)、仿射變換、透視、重映射)

    幾何變換指的是將一幅圖像映射到另一幅圖像內(nèi)的操作。 cv2.warpAffine :使用仿射變換矩陣對圖像進(jìn)行變換,可以實現(xiàn)平移、縮放和旋轉(zhuǎn)等操作。 cv2.warpPerspective :使用透視變換矩陣對圖像進(jìn)行透視變換,可以實現(xiàn)鏡頭校正、圖像糾偏等操作。 cv2.getAffineTransform :計算仿射變換

    2024年02月05日
    瀏覽(33)
  • open cv學(xué)習(xí) (四)圖像的幾何變換

    demo1 demo2 demo3 demo4 demo5 demo6 demo7

    2024年02月12日
    瀏覽(19)
  • 【opencv】:圖像的透視變換

    【opencv】:圖像的透視變換

    仿射變換(Affine Transformation或 Affine Map) , 又稱為仿射映射, 是指在幾何中, 圖像進(jìn)行從一個向量空間進(jìn)行一次線性變換和一次平移, 變換為到另一個向量空間的過程。我們常說的仿射變換是透視變換的一個特例。 以上便是透視變換的原理圖,即將源圖像通過投影映射,

    2024年02月15日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包