最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python圖像處理之透視變換的實(shí)戰(zhàn)應(yīng)用

 更新時(shí)間:2021年08月31日 12:59:29   作者:趙卓不凡  
透視變換(Perspective Transformation)是將圖片投影到一個(gè)新的視平面(Viewing Plane),也稱作投影映射(Projective Mapping),下面這篇文章主要給大家介紹了關(guān)于Python圖像處理之透視變換的相關(guān)資料,需要的朋友可以參考下

1 引言

如果你想對(duì)圖像進(jìn)行校準(zhǔn),那么透視變換是非常有效的變換手段。透視變換的定義為將圖像投影到一個(gè)新的視平面,通常也被稱之為投影映射。

2 公式

一般來說,通用的圖像變換公式如下所示:


上述公式中,u,v代表原始圖像坐標(biāo),x,y為經(jīng)過透視變換的圖片坐標(biāo),其中變換矩陣為3X3形式。進(jìn)而可以得到:

3 舉例

在介紹opencv的透視變換函數(shù)之前,我們舉例來講解該算法的原理:


直觀的來看,透視變換的作用就是將左側(cè)圖像的坐標(biāo)點(diǎn)

[[50,0],[150,0],[0,200],[200,200]]

轉(zhuǎn)化為新的坐標(biāo)

[[0,0],[200,0],[0,200],[200,200]]

通過計(jì)算我們知道,轉(zhuǎn)換矩陣如下:


我們來驗(yàn)證一下,采用左上角的點(diǎn)(50,0)帶入公式,如下:

接著我們將列向量的前兩維度除以第三維執(zhí)行歸一化:


所以我們知道原圖左上角點(diǎn)執(zhí)行透視變換后的映射關(guān)系:

4 應(yīng)用

本文以撲克牌的例子來進(jìn)行講解,樣例結(jié)果如下:

請(qǐng)?zhí)砑訄D片描述

4.1 讀入圖像

首先我們來讀入一副彩色圖像,如下:

import cv2
import numpy as np
img = cv2.imread("image/sample.jpg")
h, w, c = img.shape  # h=240  w=320

4.2 挑選源圖四個(gè)點(diǎn)

接著我們需要挑選四個(gè)點(diǎn),我們這里采用左上,左下,右下和右上,下面的代碼把我們挑選的四個(gè)點(diǎn)畫到圖像上

src_list = [(61, 70), (151, 217), (269, 143), (160, 29)]
for i, pt in enumerate(src_list):
	cv2.circle(img, pt, 5, (0, 0, 255), -1)
	cv2.putText(img,str(i+1),(pt[0]+5,pt[1]+10),cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
pts1 = np.float32(src_list)

結(jié)果如下:

請(qǐng)?zhí)砑訄D片描述

4.3 進(jìn)行透視變換

首先選擇四個(gè)目的圖像上的點(diǎn),然后調(diào)用openv函數(shù)進(jìn)行透視變換,代碼如下:

pts2 = np.float32([[0, 0], [0, w - 2], [h - 2, w - 2], [h - 2, 0]])
matrix = cv2.getPerspectiveTransform(pts1, pts2)
result = cv2.warpPerspective(img, matrix, (h, w))
cv2.imshow("Image", img)
cv2.imshow("Perspective transformation", result)
cv2.waitKey(0)

得到結(jié)果如下:

請(qǐng)?zhí)砑訄D片描述

5 應(yīng)用

我們?cè)趯?shí)際應(yīng)用中,可以使用透視變換來替換廣告牌中對(duì)應(yīng)的背景圖,結(jié)果如下:

廣告牌:

請(qǐng)?zhí)砑訄D片描述

Logo圖:

請(qǐng)?zhí)砑訄D片描述

結(jié)果圖:

請(qǐng)?zhí)砑訄D片描述

6 總結(jié)

本文介紹了圖像處理透視變換的原理和具體代碼實(shí)現(xiàn),并給出了具體應(yīng)用示例。

到此這篇關(guān)于Python圖像處理之透視變換的文章就介紹到這了,更多相關(guān)Python圖像透視變換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

7 參考

參考 鏈接一 鏈接二

相關(guān)文章

  • 一文介紹Python中的正則表達(dá)式用法

    一文介紹Python中的正則表達(dá)式用法

    正則表達(dá)式是一種強(qiáng)大的文本匹配和處理工具,廣泛應(yīng)用于各種編程語言中,在Python中,我們可以使用內(nèi)置的re模塊來處理正則表達(dá)式,本文將帶您從入門到精通,逐步介紹Python中的正則表達(dá)式用法,并提供實(shí)例演示
    2023-07-07
  • Python selenium如何設(shè)置等待時(shí)間

    Python selenium如何設(shè)置等待時(shí)間

    這篇文章主要為大家詳細(xì)介紹了Python selenium如何設(shè)置等待時(shí)間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • python 爬取英雄聯(lián)盟皮膚并下載的示例

    python 爬取英雄聯(lián)盟皮膚并下載的示例

    這篇文章主要介紹了python 爬取英雄聯(lián)盟皮膚并下載的示例,幫助大家更好的理解和學(xué)習(xí)使用python 爬蟲,感興趣的朋友可以聊繼續(xù)
    2020-12-12
  • Python實(shí)現(xiàn)PS圖像調(diào)整之對(duì)比度調(diào)整功能示例

    Python實(shí)現(xiàn)PS圖像調(diào)整之對(duì)比度調(diào)整功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)PS圖像調(diào)整之對(duì)比度調(diào)整功能,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)PS圖像對(duì)比度調(diào)整的原理、實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • 用python3 返回鼠標(biāo)位置的實(shí)現(xiàn)方法(帶界面)

    用python3 返回鼠標(biāo)位置的實(shí)現(xiàn)方法(帶界面)

    今天小編就為大家分享一篇用python3 返回鼠標(biāo)位置的實(shí)現(xiàn)方法(帶界面),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python?使用?with?open()?as?讀寫文件的操作方法

    python?使用?with?open()?as?讀寫文件的操作方法

    這篇文章主要介紹了python?使用?with?open()as?讀寫文件的操作代碼,寫文件和讀文件是一樣的,唯一區(qū)別是調(diào)用open()函數(shù)時(shí),傳入標(biāo)識(shí)符'w'或者'wb'表示寫文本文件或?qū)懚M(jìn)制文件,需要的朋友可以參考下
    2022-11-11
  • 利用Python?NumPy庫(kù)及Matplotlib庫(kù)繪制數(shù)學(xué)函數(shù)圖像

    利用Python?NumPy庫(kù)及Matplotlib庫(kù)繪制數(shù)學(xué)函數(shù)圖像

    最近開始學(xué)習(xí)數(shù)學(xué)了,有一些題目的函數(shù)圖像非常有特點(diǎn),下面這篇文章主要給大家介紹了關(guān)于利用Python?NumPy庫(kù)及Matplotlib庫(kù)繪制數(shù)學(xué)函數(shù)圖像的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • python中BackgroundScheduler和BlockingScheduler的區(qū)別

    python中BackgroundScheduler和BlockingScheduler的區(qū)別

    這篇文章主要介紹了python中BackgroundScheduler和BlockingScheduler的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Python如何為圖片添加水印

    Python如何為圖片添加水印

    這篇文章主要介紹了Python如何使用Python-Pillow庫(kù)給圖片添加水印的方法,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2016-11-11
  • Python操作MySQL數(shù)據(jù)庫(kù)的示例代碼

    Python操作MySQL數(shù)據(jù)庫(kù)的示例代碼

    這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫(kù)的方法,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07

最新評(píng)論

礼泉县| 清镇市| 宜兰县| 河南省| 博罗县| 浠水县| 射阳县| 年辖:市辖区| 乌苏市| 湘乡市| 河南省| 阿拉尔市| 淅川县| 门头沟区| 阿拉善左旗| 罗江县| 铜鼓县| 大冶市| 京山县| 东安县| 溆浦县| 无棣县| 张家港市| 舟曲县| 英吉沙县| 南华县| 洛隆县| 秦安县| 镇远县| 长宁区| 洱源县| 连江县| 武穴市| 万全县| 平阴县| 陈巴尔虎旗| 喀什市| 民丰县| 襄垣县| 开江县| 南投市|