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

Python OpenCV 圖像平移的實(shí)現(xiàn)示例

 更新時(shí)間:2021年06月04日 10:43:33   作者:夢(mèng)想橡皮擦  
本篇博客學(xué)習(xí)OpenCV 中關(guān)于圖像平移的方法,核心學(xué)習(xí)到的方法是warpAffine,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

每次學(xué)習(xí)新東西的時(shí)候,橡皮擦都是去海量檢索,然后找到適合自己理解的部分。

再將其拼湊成一個(gè)小的系統(tǒng),爭(zhēng)取對(duì)該內(nèi)容有初步理解。

今天這 1 個(gè)小時(shí),核心要學(xué)習(xí)的是圖像的平移,在電腦上隨便打開(kāi)一張圖片,實(shí)現(xiàn)移動(dòng)都非常簡(jiǎn)單,但是在代碼中,出現(xiàn)了一些新的概念。

檢索 OpenCV 圖像平移相關(guān)資料時(shí),碰到的第一個(gè)新概念是就是 仿射變換。

每次看到這樣子的數(shù)學(xué)名字,必然心中一涼,做為一個(gè)數(shù)學(xué)小白,又要瑟瑟發(fā)抖了。

百度一下,看看百科中是如何介紹的。

Python OpenCV 圖像平移,取經(jīng)之旅第 10 天

看過(guò)上圖中的一些相關(guān)簡(jiǎn)介之后,對(duì)于這個(gè)概念也并沒(méi)有太深刻的理解,本著先用起來(lái),在補(bǔ)充理論的學(xué)習(xí)觀點(diǎn),我們先實(shí)現(xiàn)圖像平移。

學(xué)習(xí)過(guò)程中,碰到一些概念性的東西,可以先應(yīng)用起來(lái),然后在后續(xù)的深入學(xué)習(xí)過(guò)程中,逐步去完善它們。

cv2.warpAffine() 仿射變換

基于該方法去尋找相關(guān)資料,得到仿射變換的基本概念,從二維坐標(biāo)到二維坐標(biāo)之間的線性變換,并且要保持二維圖形的“平直性” 和 “平行性”。

仿射變換中,包含平移,縮放,翻轉(zhuǎn),旋轉(zhuǎn),剪切。

該方法的語(yǔ)法結(jié)構(gòu)如下:

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

參數(shù)說(shuō)明:

  • src:輸入圖像
  • M:2*3 transformation matrix (轉(zhuǎn)變矩陣)
  • dsize:輸出圖像的大小,格式為(cols,rows),width 對(duì)應(yīng) cols,height 對(duì)應(yīng) rows
  • flags: 可選參數(shù),插值方法的組合(int 類(lèi)型),默認(rèn)值 INTER_LINEAR
  • borderMode:可選參數(shù),邊界像素模式(int 類(lèi)型),默認(rèn)值 BORDER_CONSTANT
  • borderValue:可選參數(shù),邊界填充值; 默認(rèn)情況下,默認(rèn)值 Scalar()即 0

官方可查閱的英文資料如下:

Python OpenCV 圖像平移,取經(jīng)之旅第 10 天

插值方式(flags)有如下類(lèi)型:

  • INTER_LINEAR 線性插值
  • INTER_NEAREST 最近鄰插值
  • INTER_AREA 區(qū)域插值
  • INTER_CUBIC 三次樣條插值
  • INTER_LANCZOS4 Lanczos 插值

一般情況下,使用 wrapAffine 前三個(gè)參數(shù),即 warpAffine(img,M,(rows,cols)) 實(shí)現(xiàn)基本的仿射變換效果,但是這種情況會(huì)出現(xiàn) 黑邊 現(xiàn)象。

最后一個(gè)參數(shù)為 borderValue,邊界填充的顏色,默認(rèn)為黑色,可以自行設(shè)置為其它顏色。

具體代碼

圖像平移是圖像位置的移動(dòng)。在平移前,需要先轉(zhuǎn)換矩陣 M,,其中 tx,ty 表示在(x,y)方向上的位移,如下所示:

Python OpenCV 圖像平移,取經(jīng)之旅第 10 天

測(cè)試代碼如下,重要部分在注釋中進(jìn)行說(shuō)明。

import numpy as np
import cv2 as cv

img = cv.imread('10.jpg', 1)
rows, cols, channels = img.shape
# [1,0,100] 右移 100, [0,1,50] 下移 50
M = np.float32([[1, 0, 100], [0, 1, 50]])
res = cv.warpAffine(img, M, (cols, rows))
cv.imshow("img", res)
cv.waitKey()

特別說(shuō)明:
cv.warpAffine 方法的第三個(gè)參數(shù)是輸出圖像的大小,其形式應(yīng)為(width,height)。記住 width =列數(shù)(cols),height =行數(shù)(rows)。

以下為代碼運(yùn)行結(jié)果。

Python OpenCV 圖像平移,取經(jīng)之旅第 10 天

關(guān)于 borderMode 參數(shù)值的說(shuō)明:

該部分內(nèi)容涉及邊緣處理,翻閱手冊(cè)過(guò)程找到的說(shuō)明指向 BorderTypes。翻閱了一下,依舊是有些超綱,可以先記錄下相關(guān)內(nèi)容,日后在進(jìn)行回顧,參考地址。

所有值羅列如下:

  • BORDER_CONSTANT = 0
  • BORDER_REPLICATE = 1
  • BORDER_REFLECT = 2
  • BORDER_WRAP = 3
  • BORDER_REFLECT_101 = 4
  • BORDER_TRANSPARENT = 5
  • BORDER_REFLECT101 = BORDER_REFLECT_101
  • BORDER_DEFAULT = BORDER_REFLECT_101
  • BORDER_ISOLATED = 16

Python OpenCV 圖像平移,取經(jīng)之旅第 10 天

borderValue:當(dāng)圖像邊界處理方式為 BORDER_CONSTANT 時(shí)的填充值。

測(cè)試代碼如下:

import numpy as np
import cv2 as cv

img = cv.imread('10.jpg', 1)
rows, cols, channels = img.shape
M = np.float32([[1, 0, 100], [0, 1, 50]])
res = cv.warpAffine(img, M, (cols, rows),
                    borderMode=cv.BORDER_CONSTANT, borderValue=(200, 66, 66))
cv.imshow("img", res)
cv.waitKey()

OpenCV 尾聲

到此這篇關(guān)于Python OpenCV 圖像平移的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)OpenCV 圖像平移內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pandas如何篩選某個(gè)列值是否位于某個(gè)列表內(nèi)

    pandas如何篩選某個(gè)列值是否位于某個(gè)列表內(nèi)

    這篇文章主要介紹了pandas如何篩選某個(gè)列值是否位于某個(gè)列表內(nèi)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Numpy中np.max的用法及np.maximum區(qū)別

    Numpy中np.max的用法及np.maximum區(qū)別

    這篇文章主要介紹了Numpy中np.max的用法及np.maximum區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 我用Python抓取了7000 多本電子書(shū)案例詳解

    我用Python抓取了7000 多本電子書(shū)案例詳解

    這篇文章主要介紹了我用Python抓取了7000 多本電子書(shū)案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 利用python Pandas實(shí)現(xiàn)批量拆分Excel與合并Excel

    利用python Pandas實(shí)現(xiàn)批量拆分Excel與合并Excel

    今天帶大家學(xué)習(xí)利用python Pandas實(shí)現(xiàn)批量拆分Excel與合并Excel,文中有非常詳細(xì)的的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • 詳解tf.device()指定tensorflow運(yùn)行的GPU或CPU設(shè)備實(shí)現(xiàn)

    詳解tf.device()指定tensorflow運(yùn)行的GPU或CPU設(shè)備實(shí)現(xiàn)

    這篇文章主要介紹了詳解tf.device()指定tensorflow運(yùn)行的GPU或CPU設(shè)備實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python基礎(chǔ)教程之tcp socket編程詳解及簡(jiǎn)單實(shí)例

    Python基礎(chǔ)教程之tcp socket編程詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了Python基礎(chǔ)教程之tcp socket編程詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 詳解如何使用Python?LXML庫(kù)來(lái)解析和處理XML文檔

    詳解如何使用Python?LXML庫(kù)來(lái)解析和處理XML文檔

    在數(shù)據(jù)處理過(guò)程中,XML(可擴(kuò)展標(biāo)記語(yǔ)言)常常被用作數(shù)據(jù)存儲(chǔ)和傳輸,Python的lxml庫(kù)是一個(gè)強(qiáng)大的庫(kù),用于解析XML和HTML文檔,本文將向您介紹如何使用lxml庫(kù)來(lái)解析和處理XML文檔,需要的朋友可以參考下
    2023-08-08
  • python利用socketserver實(shí)現(xiàn)并發(fā)套接字功能

    python利用socketserver實(shí)現(xiàn)并發(fā)套接字功能

    這篇文章主要為大家詳細(xì)介紹了python利用socketserver實(shí)現(xiàn)并發(fā)套接字功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • django框架用戶權(quán)限中的session緩存到redis中的方法

    django框架用戶權(quán)限中的session緩存到redis中的方法

    今天小編就為大家分享一篇django框架用戶權(quán)限中的session緩存到redis中的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 利用OpenCV實(shí)現(xiàn)質(zhì)心跟蹤算法

    利用OpenCV實(shí)現(xiàn)質(zhì)心跟蹤算法

    質(zhì)心跟蹤算法不是正統(tǒng)的目標(biāo)跟蹤,而是在多目標(biāo)跟蹤中結(jié)合目標(biāo)檢測(cè)算法不同幀之間的相同目標(biāo)做一個(gè)link。本文將利用OpenCV實(shí)現(xiàn)質(zhì)心跟蹤算法,感興趣的可以試一試
    2022-01-01

最新評(píng)論

夏邑县| 山东| 郁南县| 高青县| 连州市| 密云县| 安西县| 永顺县| 宜君县| 安泽县| 永新县| 镇远县| 灯塔市| 民勤县| 泰顺县| 河曲县| 北流市| 抚松县| 定南县| 唐河县| 普兰店市| 盘山县| 天等县| 卢龙县| 高邑县| 克什克腾旗| 尼玛县| 台中县| 于都县| 松原市| 佛教| 庆城县| 常宁市| 丰宁| 武强县| 隆尧县| 萝北县| 高台县| 郓城县| 闵行区| 凤山市|