欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用OpenCV實(shí)現(xiàn)仿射變換—旋轉(zhuǎn)功能

 更新時(shí)間:2019年08月29日 10:37:33   作者:caimouse  
這篇文章主要介紹了在OpenCV里實(shí)現(xiàn)仿射變換——旋轉(zhuǎn)功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

在前面實(shí)現(xiàn)了平移和縮放,還有一種常用的坐標(biāo)變換,那就是旋轉(zhuǎn)。比如拍攝的照片上傳到電腦里,再打開時(shí)發(fā)現(xiàn)人的頭在下面腳在上,這樣肯定看不了,那么就需要把這個(gè)照片旋轉(zhuǎn)180度才可以接受。由于旋轉(zhuǎn)變換,都是繞著點(diǎn)進(jìn)行運(yùn)動的,首先要找到軸的位置,默認(rèn)是原點(diǎn)(0,0),如果要指定點(diǎn)進(jìn)行,那么要采用前面的平移操作,即是把圖片移到這一點(diǎn)上,然后進(jìn)行旋轉(zhuǎn),再把它平移回來,這樣才可以完成。所以在這個(gè)操作過程里,就要多個(gè)矩陣進(jìn)行操作了,先要進(jìn)行平移矩陣相乘,再與旋轉(zhuǎn)矩陣相乘,最后與反向平移矩陣相乘。旋轉(zhuǎn)的操作都是使用角度方式來計(jì)算,因此要使用中學(xué)的知識—三角函數(shù)sin和cos等,如果對這些知識忘記了,可以回去復(fù)習(xí)一下中學(xué)知識,到這里就會發(fā)現(xiàn)數(shù)學(xué)的知識是非常有用的,特別是中學(xué)的知識。一般會解出方案如下:

再加上齊次化,齊次化的目標(biāo)主要為了把平移操作統(tǒng)一到一個(gè)公式里,就可以把公式寫成這樣:

這個(gè)矩陣變換就是純旋轉(zhuǎn)的公式。一般情況下,會有平移和縮放一起操作,這樣單獨(dú)地去構(gòu)造這些矩陣就有些麻煩了,為了簡單起見,OpenCV提供了一個(gè)函數(shù)cv2.getRotationMatrix2D來完成這些操作,這個(gè)函數(shù)調(diào)用參數(shù)如下:

retval = cv.getRotationMatrix2D( center, angle, scale )

center是元組表示的旋轉(zhuǎn)中心點(diǎn)。

angle是用度表示的旋轉(zhuǎn)角度。

scale是縮放系數(shù)。

其實(shí)這個(gè)函數(shù)是計(jì)算這樣的矩陣:

所以在OpenCV里基本不需要自己去單獨(dú)計(jì)算縮放和旋轉(zhuǎn)的矩陣,調(diào)用此函數(shù)最簡單了。下面通過例子來演示旋轉(zhuǎn)的功能:

#python 3.7.4,opencv4.1
#蔡軍生 https://blog.csdn.net/caimouse/article/details/51749579
#
import cv2
import numpy as np
 
#圖片的路徑
imgname = "img1.jpg"
 
#讀取圖片
image = cv2.imread(imgname, cv2.IMREAD_COLOR)
 
#圖片的高度和寬度
h,w = image.shape[:2]
 
#構(gòu)造縮放并旋轉(zhuǎn)的2X3的矩陣,然后調(diào)用warpAffine執(zhí)行
A1 = cv2.getRotationMatrix2D((w/2.0, h/2.0), 30, 0.5)
d1 = cv2.warpAffine(image, A1, (w, h), borderValue = 125)
 
#顯示操作之后的圖片
cv2.imshow("d1",d1)
 
#顯示圖像
cv2.imshow("image", image)
 
#等待用戶輸入,然后刪除所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出結(jié)果如下:

左邊是旋轉(zhuǎn)并縮放的圖片,右邊是原圖。

上面的例子主要調(diào)用函數(shù)getRotationMatrix2D來構(gòu)造矩陣,然后調(diào)用函數(shù)warpAffine來執(zhí)行仿射變換操作。

總結(jié)

以上所述是小編給大家介紹的使用OpenCV實(shí)現(xiàn)仿射變換—旋轉(zhuǎn)功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Python3.5以上版本lxml導(dǎo)入etree報(bào)錯(cuò)的解決方案

    Python3.5以上版本lxml導(dǎo)入etree報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了Python3.5以上版本lxml導(dǎo)入etree報(bào)錯(cuò)的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Python使用scrapy抓取網(wǎng)站sitemap信息的方法

    Python使用scrapy抓取網(wǎng)站sitemap信息的方法

    這篇文章主要介紹了Python使用scrapy抓取網(wǎng)站sitemap信息的方法,涉及Python框架scrapy的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 對PyQt5中的菜單欄和工具欄實(shí)例詳解

    對PyQt5中的菜單欄和工具欄實(shí)例詳解

    今天小編就為大家分享一篇對PyQt5中的菜單欄和工具欄實(shí)例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python文件的壓縮與解壓

    Python文件的壓縮與解壓

    這篇文章主要介紹了Python文件的壓縮與解壓,Python進(jìn)行文件、文件夾壓縮與解壓,用到的是zipfile的第三方依賴庫。根據(jù)不同應(yīng)用場景封裝了幾個(gè)方法,下文相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • python使用Word2Vec進(jìn)行情感分析解析

    python使用Word2Vec進(jìn)行情感分析解析

    這篇文章主要介紹了python使用Word2Vec進(jìn)行情感分析解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 如何利用Python統(tǒng)計(jì)正數(shù)和負(fù)數(shù)的個(gè)數(shù)

    如何利用Python統(tǒng)計(jì)正數(shù)和負(fù)數(shù)的個(gè)數(shù)

    Python檢查數(shù)據(jù)中的正/負(fù)數(shù)是一種常見的數(shù)據(jù)處理操作,可以通過編寫代碼來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于如何利用Python統(tǒng)計(jì)正數(shù)和負(fù)數(shù)的個(gè)數(shù)的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • Python3中使用urllib的方法詳解(header,代理,超時(shí),認(rèn)證,異常處理)

    Python3中使用urllib的方法詳解(header,代理,超時(shí),認(rèn)證,異常處理)

    這篇文章整理了一些關(guān)于urllib使用中的一些關(guān)于header,代理,超時(shí),認(rèn)證,異常處理處理方法,對大家學(xué)習(xí)python具有一定的參考借鑒價(jià)值,有需要的朋友們下面來一起看看吧。
    2016-09-09
  • python導(dǎo)入導(dǎo)出redis數(shù)據(jù)的實(shí)現(xiàn)

    python導(dǎo)入導(dǎo)出redis數(shù)據(jù)的實(shí)現(xiàn)

    本文主要介紹了python導(dǎo)入導(dǎo)出redis數(shù)據(jù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Python中的np.vstack()和np.hstack()詳解

    Python中的np.vstack()和np.hstack()詳解

    這篇文章主要介紹了np.vstack()和np.hstack(),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • 如何實(shí)現(xiàn)Python調(diào)用Golang代碼詳解

    如何實(shí)現(xiàn)Python調(diào)用Golang代碼詳解

    這篇文章主要介紹了如何實(shí)現(xiàn)Python調(diào)用Golang代碼,Python和Golang都是當(dāng)下非常流行的編程語言,在實(shí)際開發(fā)中,我們可能會遇到需要將Python和Golang進(jìn)行組合使用的場景,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05

最新評論