亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

這個(gè)矩陣變換就是純旋轉(zhuǎn)的公式。一般情況下,會(huì)有平移和縮放一起操作,這樣單獨(dú)地去構(gòu)造這些矩陣就有些麻煩了,為了簡(jiǎn)單起見(jiàn),OpenCV提供了一個(gè)函數(shù)cv2.getRotationMatrix2D來(lái)完成這些操作,這個(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ù)最簡(jiǎn)單了。下面通過(guò)例子來(lái)演示旋轉(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來(lái)構(gòu)造矩陣,然后調(diào)用函數(shù)warpAffine來(lái)執(zhí)行仿射變換操作。

總結(jié)

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

相關(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ò)的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(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
  • 對(duì)PyQt5中的菜單欄和工具欄實(shí)例詳解

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

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

    Python文件的壓縮與解壓

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

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

    這篇文章主要介紹了python使用Word2Vec進(jìn)行情感分析解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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ù)是一種常見(jiàn)的數(shù)據(jù)處理操作,可以通過(guò)編寫代碼來(lái)實(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)證,異常處理處理方法,對(duì)大家學(xué)習(xí)python具有一定的參考借鑒價(jià)值,有需要的朋友們下面來(lái)一起看看吧。
    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),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Python中的np.vstack()和np.hstack()詳解

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

    這篇文章主要介紹了np.vstack()和np.hstack(),本文給大家介紹的非常詳細(xì),對(duì)大家的學(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)下非常流行的編程語(yǔ)言,在實(shí)際開(kāi)發(fā)中,我們可能會(huì)遇到需要將Python和Golang進(jìn)行組合使用的場(chǎng)景,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05

最新評(píng)論