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

使用OpenCV實(shí)現(xiàn)仿射變換—平移功能

 更新時(shí)間:2019年08月29日 10:54:37   作者:caimouse  
這篇文章主要介紹了使用OpenCV實(shí)現(xiàn)仿射變換—平移功能,需要的朋友可以參考下

當(dāng)我們打開一個(gè)圖片編輯軟件時(shí),基本上都會(huì)提供幾個(gè)操作:平移、縮放和旋轉(zhuǎn)。特別目前在手機(jī)里拍照時(shí),由于位置傳感器的失靈,也許是軟件的BUG,有一次我就遇到蘋果手機(jī)不管怎么樣豎放,或橫放,它拍攝的照片就豎不起來,后來只有關(guān)機(jī)重啟才解決。這樣拍攝出來的照片,如果要改變方向,只能使用編輯功能了,進(jìn)行旋轉(zhuǎn)。因此,幾何變換的功能,在現(xiàn)實(shí)生活里的需求必不可少。

為了理解這個(gè)幾何的問題,可以來回憶一下初中的課本內(nèi)容:

從這里可以看到平移的基本性質(zhì),有了這些概念之后,就要進(jìn)入解釋幾何,平移的表達(dá),比如往x軸移動(dòng)100,那么就是x+100,因此平移的公式就是(x1, y1)=(x+a, y+b),如下圖所示:

從這個(gè)線性方程組來看,是一個(gè)二元的關(guān)系,再轉(zhuǎn)換為矩陣的表示方式,你會(huì)發(fā)現(xiàn)使用的方式是如下:

在這里發(fā)現(xiàn)是使用三維矩陣來表示,為什么要這樣呢?其實(shí)是為了把三種變換統(tǒng)一到一種表示方式,升維思想的作用。因此矩陣第三行沒有什么作用的,如果一個(gè)圖像要作平移,只要構(gòu)造出變換矩陣,再作這個(gè)計(jì)算,就可以把坐標(biāo)進(jìn)行改變了,所以要平移的距離是由tx和ty決定。為了統(tǒng)一,旋轉(zhuǎn)、縮放、平移都可以使用一個(gè)公式來表示和計(jì)算,這是升到三維數(shù)組的好處。同樣在三維空間的變換,也是采用四維變換矩陣。下面通例子來演示圖像平移的操作:

#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)造平移的2X3的矩陣,然后調(diào)用warpAffine執(zhí)行平移
A1 = np.array([[1, 0, 50], [0, 1, 40]], np.float32)
d1 = cv2.warpAffine(image, A1, (w, h), borderValue = 125)
 
#顯示平移之后的圖片
cv2.imshow("d1",d1)
 
#顯示圖像
cv2.imshow("image", image)
 
#等待用戶輸入,然后刪除所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

執(zhí)行的結(jié)果如下:

左圖是平移之后的圖片,在左上角出現(xiàn)了一片空白,使用了固定顏色填充,右圖是原始圖片。

在這里主要使用cv2.warpAffine函數(shù),這個(gè)函數(shù)定義如下:

cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst

其中:

src - 輸入圖像。

M - 變換矩陣。

dsize - 輸出圖像的大小。

flags - 插值方法的組合(int 類型?。?/p>

borderMode - 邊界像素模式(int 類型?。?/p>

borderValue - 邊界填充值; 默認(rèn)情況下,它為0。

上述參數(shù)中:M作為仿射變換矩陣,一般反映平移或旋轉(zhuǎn)的關(guān)系,為InputArray類型的2×3的變換矩陣。

flages表示插值方式,默認(rèn)為 flags=cv2.INTER_LINEAR,表示線性插值,此外還有:cv2.INTER_NEAREST(最近鄰插值) cv2.INTER_AREA (區(qū)域插值) cv2.INTER_CUBIC(三次樣條插值) cv2.INTER_LANCZOS4(Lanczos插值)

到這里學(xué)會(huì)了使用OpenCV中仿射變換的平移功能。

總結(jié)

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

相關(guān)文章

  • python中opencv實(shí)現(xiàn)文字分割的實(shí)踐

    python中opencv實(shí)現(xiàn)文字分割的實(shí)踐

    圖片文字分割的時(shí)候,常用的方法有兩種。一種是投影法,還有一種是用OpenCV的輪廓檢測(cè),本文詳細(xì)的介紹了這兩種方法的使用,感興趣的可以了解一下
    2021-06-06
  • TensorFlow2.X結(jié)合OpenCV 實(shí)現(xiàn)手勢(shì)識(shí)別功能

    TensorFlow2.X結(jié)合OpenCV 實(shí)現(xiàn)手勢(shì)識(shí)別功能

    這篇文章主要介紹了TensorFlow2.X結(jié)合OpenCV 實(shí)現(xiàn)手勢(shì)識(shí)別功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python 遞歸函數(shù)詳解及實(shí)例

    Python 遞歸函數(shù)詳解及實(shí)例

    這篇文章主要介紹了Python 遞歸函數(shù)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 淺析Python的對(duì)象拷貝和內(nèi)存布局

    淺析Python的對(duì)象拷貝和內(nèi)存布局

    這篇文章主要為大家詳細(xì)介紹了Python中的對(duì)象拷貝和內(nèi)存布局的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2022-12-12
  • 如何使用python進(jìn)行pdf文件分割

    如何使用python進(jìn)行pdf文件分割

    這篇文章主要介紹了如何使用python進(jìn)行pdf文件分割,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python 數(shù)據(jù)結(jié)構(gòu)之十大經(jīng)典排序算法一文通關(guān)

    Python 數(shù)據(jù)結(jié)構(gòu)之十大經(jīng)典排序算法一文通關(guān)

    排序算法可以分為內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存
    2021-10-10
  • Ubuntu16.04 安裝多個(gè)python版本的問題及解決方法

    Ubuntu16.04 安裝多個(gè)python版本的問題及解決方法

    Ubuntu16.04自帶python2.7與python3.5,Ubuntu 官方 apt 庫中還未收錄 python 3.8,因此添加 deadsnakes PPA 源安裝python3.8,否則會(huì)出現(xiàn)報(bào)錯(cuò),接下來通過本文給大家介紹Ubuntu16.04 安裝python的問題,一起看看吧
    2021-09-09
  • 如何利用pandas將Excel轉(zhuǎn)為html格式

    如何利用pandas將Excel轉(zhuǎn)為html格式

    工作中經(jīng)常會(huì)遇到Excel轉(zhuǎn)為html格式這種需求,下面這篇文章主要給大家介紹了關(guān)于如何利用pandas將Excel轉(zhuǎn)為html格式的相關(guān)資料,主要利用的是pd.to_html,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • python 函數(shù)的缺省參數(shù)使用注意事項(xiàng)分析

    python 函數(shù)的缺省參數(shù)使用注意事項(xiàng)分析

    這篇文章主要介紹了python 函數(shù)的缺省參數(shù)使用注意事項(xiàng),結(jié)合實(shí)例形式分析了Python函數(shù)缺省參數(shù)的使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • Python解析JSON數(shù)據(jù)的基本方法實(shí)例代碼

    Python解析JSON數(shù)據(jù)的基本方法實(shí)例代碼

    JSON (JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,下面這篇文章主要給大家介紹了關(guān)于Python解析JSON數(shù)據(jù)的基本方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01

最新評(píng)論