中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

正規(guī)品牌網(wǎng)站設(shè)計(jì)價(jià)格網(wǎng)絡(luò)優(yōu)化工程師有前途嗎

正規(guī)品牌網(wǎng)站設(shè)計(jì)價(jià)格,網(wǎng)絡(luò)優(yōu)化工程師有前途嗎,建設(shè)銀行網(wǎng)銀網(wǎng)站無法訪問,網(wǎng)站分為的風(fēng)格前言:Hello大家好,我是小哥談。OpenCV中的幾何變換是指改變圖像的幾何結(jié)構(gòu),例如大小、角度和形狀等,讓圖像呈現(xiàn)出縮放、翻轉(zhuǎn)、旋轉(zhuǎn)和透視效果。這些幾何變換操作都涉及復(fù)雜、精密的計(jì)算。OpenCV將這些計(jì)算過程都封裝成了非常靈活的…

前言:Hello大家好,我是小哥談。OpenCV中的幾何變換是指改變圖像的幾何結(jié)構(gòu),例如大小、角度和形狀等,讓圖像呈現(xiàn)出縮放、翻轉(zhuǎn)、旋轉(zhuǎn)和透視效果。這些幾何變換操作都涉及復(fù)雜、精密的計(jì)算。OpenCV將這些計(jì)算過程都封裝成了非常靈活的方法,開發(fā)者只需要修改一些參數(shù),就可以看到圖像的變換效果。本節(jié)課就介紹幾種常見的幾何變換效果及其實(shí)現(xiàn)方法。🌈

前期回顧:

? ? ? ? ? ?史上最全OpenCV常用方法及使用說明匯總,建議收藏!

? ? ? ? ? ?OpenCV基礎(chǔ)知識(shí)(1)— OpenCV概述

? ? ? ? ? ?OpenCV基礎(chǔ)知識(shí)(2)— 圖像處理的基本操作

? ? ? ? ? ?OpenCV基礎(chǔ)知識(shí)(3)— 圖像數(shù)字化基礎(chǔ)(像素、色彩空間)

? ? ? ? ? ?OpenCV基礎(chǔ)知識(shí)(4)— 繪制圖形?? ? ?

? ? ? ? ? ?目錄

🚀1.縮放

💥💥1.1 dsize參數(shù)實(shí)現(xiàn)縮放

💥💥1.2?fx參數(shù)和fy參數(shù)實(shí)現(xiàn)縮放

🚀2.翻轉(zhuǎn)

🚀3.旋轉(zhuǎn)

🚀4.透視

🚀1.縮放

”表示縮小,“”表示放大,通過OpenCV中提供的resize()方法就可以隨意更改圖像的大小比例,其語法格式如下:

dst = cv2.resize(src,dsize,fx,fy,interpolation)

參數(shù)說明:

src:原始圖像

dsize:輸出圖像的大小,格式為(寬,高),單位為像素。

fx:可選參數(shù)。水平方向的縮放比例。

fy:可選參數(shù)。垂直方向的縮放比例。

interpolation:可選參數(shù)。縮放的插值方式,在圖像縮小或者放大時(shí)需要?jiǎng)h減或補(bǔ)充像素,該參數(shù)可以指定使用哪種算法對(duì)像素進(jìn)行增減。建議使用默認(rèn)值。

返回值說明:

dst:縮放之后的圖像

🍀resize()方法有兩種使用方式,一種是通過dsize參數(shù)實(shí)現(xiàn)縮放,另一種是通過 fx fy 參數(shù)實(shí)現(xiàn)縮放,下面分別進(jìn)行介紹。

💥💥1.1 dsize參數(shù)實(shí)現(xiàn)縮放

dsize參數(shù)的格式是一個(gè)元組,例如(100,200),表示將圖像按照寬100像素、高200像素的大小進(jìn)行縮放。如果使用dsize參數(shù),則可以不寫 fx fy 參數(shù)。

代碼如下:

import cv2
img = cv2.imread("1.jpg")  # 讀取圖像
dst1 = cv2.resize(img, (300, 300))  # 按照寬300像素、高300像素的大小進(jìn)行縮放
cv2.imshow("img", img)  # 顯示原圖
cv2.imshow("dst1", dst1)  # 顯示縮放圖像
cv2.waitKey()  # 按下任何鍵盤按鍵后
cv2.destroyAllWindows()   # 釋放所有窗體

原始圖像:

縮放后圖像:

💥💥1.2?fx參數(shù)和fy參數(shù)實(shí)現(xiàn)縮放

使用 fx 參數(shù)和 fy 參數(shù)控制縮放的時(shí)候,dsize參數(shù)值必須使用None,否則 fx fy 就會(huì)失效。

fx 參數(shù)和 fy 參數(shù)可以使用浮點(diǎn)值,小于1的值表示縮小,大于1的值表示放大。

代碼如下:

import cv2
img = cv2.imread("1.jpg")  # 讀取圖像
dst3 = cv2.resize(img, None, fx=1 / 3, fy=1 / 2)  # 將寬縮小到原來的1/3、高縮小到原來的1/2
cv2.imshow("img", img)  # 顯示原圖
cv2.imshow("dst3", dst3)  # 顯示縮放圖像
cv2.waitKey()  # 按下任何鍵盤按鍵后
cv2.destroyAllWindows()  # 釋放所有窗體

?原始圖像:

?縮放后圖像:


🚀2.翻轉(zhuǎn)

水平線被稱為X軸,垂直線被稱為Y軸。圖像沿著X軸或者Y軸翻轉(zhuǎn)之后,可以呈現(xiàn)出鏡面倒影的效果。OpenCV通過cv2.flip()方法實(shí)現(xiàn)翻轉(zhuǎn)效果,其語法如下:

dst = cv2.flip(src,flipCode)

參數(shù)說明:

src:原始圖像

flipCode:翻轉(zhuǎn)類型,類型值如下表所示。

參數(shù)值含義
0沿著X軸翻轉(zhuǎn)
正數(shù)沿著Y軸翻轉(zhuǎn)
負(fù)數(shù)同時(shí)沿著X軸、Y軸翻轉(zhuǎn)

返回值說明:

dst:翻轉(zhuǎn)之后的圖像

代碼如下:

import cv2
img = cv2.imread("1.jpg")  # 讀取圖像
dst1 = cv2.flip(img, 0)  # 沿X軸翻轉(zhuǎn)
dst2 = cv2.flip(img, 1)  # 沿Y軸翻轉(zhuǎn)
dst3 = cv2.flip(img, -1)  # 同時(shí)沿X軸、Y軸翻轉(zhuǎn)
cv2.imshow("img", img)  # 顯示原圖
cv2.imshow("dst1", dst1)  # 顯示翻轉(zhuǎn)之后的圖像
cv2.imshow("dst2", dst2)
cv2.imshow("dst3", dst3)
cv2.waitKey()  # 按下任何鍵盤按鍵后
cv2.destroyAllWindows()  # 釋放所有窗體

效果如圖所示:


🚀3.旋轉(zhuǎn)

讓圖像旋轉(zhuǎn)也是通過M矩陣實(shí)現(xiàn)的,但得出這個(gè)矩陣需要做很復(fù)雜的運(yùn)算,于是OpenCV提供了getRotationMatrix2D()方法來自動(dòng)計(jì)算出旋轉(zhuǎn)圖像的M矩陣。其語法格式如下所示:

M = cv2.getRotationMatrix2D(center,angle,scale)

參數(shù)說明:

center:旋轉(zhuǎn)的中心點(diǎn)坐標(biāo)

angle:旋轉(zhuǎn)的角度(不是弧度)。正數(shù)表示逆時(shí)針旋轉(zhuǎn),負(fù)數(shù)表示順時(shí)針旋轉(zhuǎn)。

scale:縮放比例,浮點(diǎn)類型。如果取值為1,表示圖像保持原來的比例。

返回值說明:

M:方法計(jì)算出的仿射矩陣

🍀比如讓圖像逆時(shí)針旋轉(zhuǎn)30°的同時(shí)縮小到原來的80%,代碼如下:

import cv2
img = cv2.imread("1.jpg")  # 讀取圖像
rows = len(img)  # 圖像像素行數(shù)
cols = len(img[0])  # 圖像像素列數(shù)
center = (rows / 2, cols / 2)  # 圖像的中心點(diǎn)
M = cv2.getRotationMatrix2D(center, 30, 0.8)  # 以圖像為中心,逆時(shí)針旋轉(zhuǎn)30度,縮放0.8倍
dst = cv2.warpAffine(img, M, (cols, rows))  # 按照M進(jìn)行仿射
cv2.imshow("img", img)  # 顯示原圖
cv2.imshow("dst", dst)  # 顯示仿射變換效果
cv2.waitKey()  # 按下任何鍵盤按鍵后
cv2.destroyAllWindows()  # 釋放所有窗體

?效果如圖所示:


🚀4.透視

如果說仿射是讓圖像在二維平面中變形,那么透視就是讓圖像在三維空間中變形。從不同的角度觀察物體,會(huì)看到不同的變形畫面。例如,矩陣會(huì)變成不規(guī)則的四邊形、直角會(huì)變成銳角或鈍角、圓形會(huì)變成橢圓等,這種變形之后的畫面就是透視圖。🌴

OpenCV通過warpPerspective()方法來實(shí)現(xiàn)透視效果,其語法如下:

dst = cv2.warpPerspective(src,M,dsize,flags,borderMode,borderValue)

參數(shù)說明:

src:原始圖像

M:一個(gè)3行3列的矩陣,根據(jù)此矩陣中的值變換原圖中的像素位置。

dsize:輸出圖像的尺寸大小

flags:可選參數(shù),插值方式,建議使用默認(rèn)值。

borderMode:可選參數(shù),邊界類型,建議使用默認(rèn)值。

borderValue:可選參數(shù),邊界值,默認(rèn)為0,建議使用默認(rèn)值。

返回值說明:

dst:經(jīng)過透視變換后輸出圖像

warpPerspective()方法也需要通過M矩陣來計(jì)算透視效果,但得出這個(gè)矩陣需要做很復(fù)雜的運(yùn)算,于是OpenCV提供了getPerspectiveTransform()方法來自動(dòng)計(jì)算M矩陣。getPerspectiveTransform()方法的語法格式如下所示:

M = cv2.getPerspectiveTransform(src,dst)

參數(shù)說明:

src:原圖四個(gè)點(diǎn)坐標(biāo),格式為4行2列的32位浮點(diǎn)數(shù)列表,例如:[[0,0],[1,0],[0,1],[1,1]]。

dst:透視圖的四個(gè)點(diǎn)坐標(biāo),格式與src一樣。

返回值說明:

M:方法計(jì)算出的仿射矩陣

🍀模擬從底部觀察圖像得到的透視效果,將圖像頂部邊緣收窄,底部邊緣保持不變,代碼如下:

import cv2
import numpy as np
img = cv2.imread("1.jpg")  # 讀取圖像
rows = len(img)  # 圖像像素行數(shù)
cols = len(img[0])  # 圖像像素列數(shù)
p1 = np.zeros((4, 2), np.float32)  # 32位浮點(diǎn)型空列表,保存原圖四個(gè)點(diǎn)
p1[0] = [0, 0]  # 左上角點(diǎn)坐標(biāo)
p1[1] = [cols - 1, 0]  # 右上角點(diǎn)坐標(biāo)
p1[2] = [0, rows - 1]  # 左下角點(diǎn)坐標(biāo)
p1[3] = [cols - 1, rows - 1]  # 右下角點(diǎn)坐標(biāo)
p2 = np.zeros((4, 2), np.float32)  # 32位浮點(diǎn)型空列表,保存透視圖四個(gè)點(diǎn)
p2[0] = [90, 0]  # 左上角點(diǎn)坐標(biāo),向右移動(dòng)90像素
p2[1] = [cols - 90, 0]  # 右上角點(diǎn)坐標(biāo),向左移動(dòng)90像素
p2[2] = [0, rows - 1]  # 左下角點(diǎn)坐標(biāo),位置不變
p2[3] = [cols - 1, rows - 1]  # 右下角點(diǎn)坐標(biāo),位置不變
M = cv2.getPerspectiveTransform(p1, p2)  # 根據(jù)四個(gè)點(diǎn)的變化軌跡計(jì)算出M矩陣
dst = cv2.warpPerspective(img, M, (cols, rows))  # 按照M進(jìn)行仿射
cv2.imshow('img', img)  # 顯示原圖
cv2.imshow('dst', dst)  # 顯示仿射變換效果
cv2.waitKey()  # 按下任何鍵盤按鍵后
cv2.destroyAllWindows()  # 釋放所有窗體

?效果如圖所示:


http://www.risenshineclean.com/news/59336.html

相關(guān)文章:

  • 河北高端網(wǎng)站建設(shè)寧波seo關(guān)鍵詞培訓(xùn)
  • 網(wǎng)頁設(shè)計(jì)共享網(wǎng)站關(guān)鍵詞優(yōu)化報(bào)價(jià)怎么樣
  • 畢設(shè)網(wǎng)站開發(fā)需要做什么2023年又封城了
  • 廣州做手機(jī)網(wǎng)站建設(shè)營(yíng)銷咨詢公司
  • 做網(wǎng)站的流程分析-圖靈吧哪個(gè)行業(yè)最需要推廣
  • 望城經(jīng)濟(jì)建設(shè)開區(qū)門戶網(wǎng)站百度電腦版網(wǎng)址
  • 做軟測(cè)的網(wǎng)站自己怎么做網(wǎng)站網(wǎng)頁
  • b2b電子商務(wù)網(wǎng)站的盈利模式廊坊百度seo公司
  • 網(wǎng)站免費(fèi)正能量小說聚合搜索引擎接口
  • 培訓(xùn)中心網(wǎng)站建設(shè)方案seo網(wǎng)站怎么優(yōu)化
  • 武漢做網(wǎng)站互助系統(tǒng)南昌seo外包公司
  • 企業(yè)建站公司推薦上海熱點(diǎn)新聞
  • 個(gè)人網(wǎng)站有哪些舉例抖音營(yíng)銷
  • 做app還要做網(wǎng)站么百度一下照片識(shí)別
  • wordpress 角色和權(quán)限管理外鏈seo招聘
  • 在線做圖網(wǎng)站今日全國(guó)疫情一覽表
  • 現(xiàn)在建網(wǎng)站賺錢嗎杭州互聯(lián)網(wǎng)公司排名榜
  • 怎么搭建一個(gè)博客網(wǎng)站武漢seo搜索引擎優(yōu)化
  • 男女之間做那個(gè)的網(wǎng)站宣傳推廣圖片
  • 優(yōu)秀政府門戶網(wǎng)站前端seo優(yōu)化
  • java新手編程入門福建seo顧問
  • 寵物網(wǎng)站模版百度一下你就知道搜索
  • 黃驊做網(wǎng)站_黃驊昊信科技|黃驊網(wǎng)站|黃驊網(wǎng)站開發(fā)|黃驊微信|黃驊惡意點(diǎn)擊競(jìng)價(jià)時(shí)用的什么軟件
  • 數(shù)據(jù)做圖網(wǎng)站有哪些內(nèi)容域名服務(wù)器查詢
  • 關(guān)于做旅游網(wǎng)站的參考文獻(xiàn)營(yíng)銷策劃書
  • 西安網(wǎng)站建設(shè)制作專業(yè)公司電子商務(wù)網(wǎng)站
  • 泉州專業(yè)網(wǎng)站制作廈門seo收費(fèi)
  • 溧陽網(wǎng)站開發(fā)網(wǎng)絡(luò)營(yíng)銷企業(yè)網(wǎng)站
  • 制作公司網(wǎng)站需要幾個(gè)數(shù)據(jù)表seo交流論壇
  • 做包裝設(shè)計(jì)的網(wǎng)站色盲測(cè)試圖片60張