好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Python OpenCV 圖像平移的實現示例

Python OpenCV 圖像平移的實現示例

熱門標簽:所得系統電梯怎樣主板設置外呼 北京電銷外呼系統加盟 地圖標注面積 朝陽手機外呼系統 市場上的電銷機器人 儋州電話機器人 北瀚ai電銷機器人官網手機版 小蘇云呼電話機器人 佛山400電話辦理

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

再將其拼湊成一個小的系統,爭取對該內容有初步理解。

今天這 1 個小時,核心要學習的是圖像的平移,在電腦上隨便打開一張圖片,實現移動都非常簡單,但是在代碼中,出現了一些新的概念。

檢索 OpenCV 圖像平移相關資料時,碰到的第一個新概念是就是 仿射變換

每次看到這樣子的數學名字,必然心中一涼,做為一個數學小白,又要瑟瑟發抖了。

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


看過上圖中的一些相關簡介之后,對于這個概念也并沒有太深刻的理解,本著先用起來,在補充理論的學習觀點,我們先實現圖像平移。

學習過程中,碰到一些概念性的東西,可以先應用起來,然后在后續的深入學習過程中,逐步去完善它們。

cv2.warpAffine() 仿射變換

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

仿射變換中,包含平移,縮放,翻轉,旋轉,剪切。

該方法的語法結構如下:

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

參數說明:

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

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


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

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

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

最后一個參數為 borderValue,邊界填充的顏色,默認為黑色,可以自行設置為其它顏色。

具體代碼

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


測試代碼如下,重要部分在注釋中進行說明。

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()

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

以下為代碼運行結果。


關于 borderMode 參數值的說明:

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

所有值羅列如下:

  • 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

borderValue:當圖像邊界處理方式為 BORDER_CONSTANT 時的填充值。

測試代碼如下:

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 尾聲

到此這篇關于Python OpenCV 圖像平移的實現示例的文章就介紹到這了,更多相關OpenCV 圖像平移內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python-OpenCV實現圖像缺陷檢測的實例
  • OpenCV-Python實現圖像平滑處理操作
  • OpenCV-Python直方圖均衡化實現圖像去霧
  • python opencv 找出圖像中的最大輪廓并填充(生成mask)
  • python基于opencv 實現圖像時鐘
  • Python-OpenCV教程之圖像的位運算詳解

標簽:定西 金融催收 酒泉 寧夏 龍巖 云南 商丘 江蘇

巨人網絡通訊聲明:本文標題《Python OpenCV 圖像平移的實現示例》,本文關鍵詞  Python,OpenCV,圖像,平移,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python OpenCV 圖像平移的實現示例》相關的同類信息!
  • 本頁收集關于Python OpenCV 圖像平移的實現示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 情欲h液忍耐| H漫纯肉无遮挡全彩漫| 毛片高清一区二区三区| 三三影院理伦片| 国产乱码精品一区二区三上| 女的让弄多少次下边才不紧| 久久久精品国产免费观看同学| 国产熟妇一区二区三区aⅴ白珊珊 丰满人妻熟妇乱又伦精品凤鸣阁 丝袜美腿美女被狂躁长视频, | 和老丈睡觉摸他下身| 国产三级日本三级美三级| 国产亚洲欧美一区二区三区| 91尤物视频在线观看| www.199麻豆???| 日韩精品欧美精品中文精品| 97青娱国产盛宴精品视频| 韩国福利电影| 男同桌上课把我弄得爽| 肚子里面满满的都是jy| 被窝伦理午夜电影网| 日本激情电影完整版在线观看| 99??高潮片免费视频小水水| 日本一道本在线视频| 国产精品28p| 18videoseⅹ性欧美69| 在线观看视频网国产福利| 成人9久久国产精品品| 红尘都市梦龙周梦龙| 王腾莫湘全文免费| 人人看人人干| 午夜伦鲁片在线观看免费| 九九99九九在线精品视频| 男人天堂网av| 欧美z0zo另类看个够| 精品露脸国偷精品产拍| 男男纯肉无码H黄肉网站| 亚洲国产精品无码第一区二区三区 | 二女共侍一夫做爰2| 男女啪动最猛动态图| h成人动漫在线观看| 亚洲精品日本高清中文字幕| 美女校花娇羞雪乳乱颤|