版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第4章圖像幾何變換楊淑瑩本章目錄4.1仿射變換4.1.1平移
4.1.2
縮放
4.1.2旋轉4.2重映射4.2.1復制
4.2.2繞x軸翻轉
4.2.3繞y軸翻轉4.2.4繞x軸與y軸翻轉4.3投影變換4.3.1原理簡介4.3.2Python實現(xiàn)4.4極坐標變換4.4.1原理簡介
4.4.2Python實現(xiàn)4.5思考與練習設變換矩陣T為則上述變換可以用公式表示為基礎知識介紹--圖像幾何變換旋轉變換基礎知識介紹--常用的幾何變換平移變換
放縮變換將2×3階變換矩陣T進一步擴充為3×3方陣這樣一來,平移變換可以用如下形式表示:基礎知識介紹--平移變換矩陣平移變換的表示法變換后的點集矩陣=變換矩陣T×變換前的點集矩陣平移變換注意:平移后的景物與原圖像相同,但“畫布”一定是擴大了。否則就會丟失信息。比例縮放變換圖像的縮小一般分為按比例縮小和不按比例縮小兩種。不按比例縮小一定會帶來幾何畸變。
縮小后,信息量小,所以畫布可相應縮小。放大將原圖像的一個像素添到新圖像的一個k1*k2的子塊中去。比例縮放變換水平鏡像垂直鏡像應用旋轉變換圖像旋轉之后,會出現(xiàn)許多的空白點,對這些空白點必須進行填充處理,否則畫面效果不好,稱這種操作為插值處理。最簡單的方法是行插值或是列插值:1)插值的方法是:空點的像素值等于前一點的像素值。2)同樣的操作重復到所有行。旋轉變換對給定的圖像連續(xù)施行若干次如前所述的平移、鏡像、比例、旋轉等基本變換F1,F(xiàn)2,…,F(xiàn)N后,所完成的變換。復合變換的矩陣等于基本變換的矩陣按順序依次相乘得到的組合矩陣,又叫級聯(lián)變換。
T=TNTN-1…T1。若干次基本變換仍可用3×3階表示。復合變換復合平移復合比例復合旋轉基礎知識介紹---圖像的平移圖像中所有的點都按照指定的平移量水平、垂直移動。設初始坐標為(x0,y0)的點經(jīng)過平移(tx.ty)后,則點(x0,y0)坐標變?yōu)?x1,y1)。
tx
坐標原點(x0,y0)
ty
(x0,y0)和(x1,y1)的關系:
x1=x0+tx
y1=y0+ty基礎知識介紹--圖像平移變換
圖像的鏡像變換水平鏡像:垂直中軸線為中心,將圖像分為左右兩部分;垂直鏡像:水平中軸線為中心,將圖像分為上下兩部分。
鏡像變換后圖的高和寬都不變。x1=Width-x0y1=y0圖像水平鏡像變換x1=x0
y1=Height-y0圖像垂直鏡像變換效果對比圖
圖像的轉置將圖像像素的x坐標和y坐標互換。將改變圖像的高度和寬度,轉置后圖像的高度和寬度將互換。
x1=y0
y1=x0圖像轉置效果對比圖圖像的旋轉必須指明圖像繞著什么旋轉。一般圖像的旋轉是以圖像的中心為原點,旋轉一定的角度。旋轉后,一般會改變圖像的大小。
旋轉后:
x1=x0cos(θ)+y0sin(θ)y1=-x0sin(θ)+y0cos(θ)圖像旋轉
效果對比圖
x1=x0*kx
y1=y0*ky
假設圖像X軸方向縮放比率是kx,Y軸方向縮放比率是ky。圖像的縮放
kx>1且ky>1時,原圖像被放大,面積增加。
由于放大圖像時產(chǎn)生了新的像素,可通過插值算法來近似處理。
當kx=ky=2時,圖像放大2倍,原圖中的某一個像素,對應新圖的4個像素。
●
●●●●
圖像放大
表3.11234234056776633
表3.21122334411223344223344002233440055667777556677776666333366663333圖像放大當kx<1且ky<1時,原圖像被縮小。當kx=ky=0.5時,被縮小一半。原圖中4個像素對應新圖中的一個像素。此時縮小后的圖像中的(0,0)像素對應于原圖中的(0,0)、(0,1)、(1,0)、(1,1)像素?!瘛?/p>
●●●圖像縮小效果對比圖仿射變換是指通過一系列幾何變換來實現(xiàn)平移、縮放、旋轉等操作。OpenCV中為仿射變換提供的仿射函數(shù)為cv2.warpAffine(),可以通過一個映射矩陣M來實現(xiàn)這種變換。由變換矩陣M與原始圖像矩陣相乘得到仿射變換函數(shù)cv2.warpAffine()的一般格式為:4.1
仿射變換4.1.1平移在已知變換矩陣M,cv2.warpAffine()完成圖像的平移操作?!纠?-1】使用仿射變換函數(shù)cv2.warpAffine()實現(xiàn)圖像的平移。importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/panda.png")#讀入panda圖像h,w=image.shape[:2]#獲取圖像大小信息M=np.float32([[1,0,120],[0,1,-120]])#構建轉換矩陣imageMove=cv.warpAffine(image,M,(w,h))#進行仿射變換——平移cv.imshow("image",image)#顯示原始圖像cv.imshow("imageMove",imageMove)#顯示變換后的圖像cv.waitKey()cv.destroyAllWindows()4.1.2縮放將原始圖像縮小為一半時,轉換矩陣M可以為:【例4-2】使用仿射變換函數(shù)cv2.warpAffine()實現(xiàn)圖像的縮放。importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/panda.png")#讀入panda圖像h,w=image.shape[:2]#獲取圖像大小信息M=np.float32([[0.5,0,0],[0,0.5,0]])#構建轉換矩陣imageMove=cv.warpAffine(image,M,(w,h))#進行仿射變換——縮放cv.imshow("image",image)#顯示原始圖像cv.imshow("imageMove",imageMove)#顯示變換后的圖像cv.waitKey()cv.destroyAllWindows()4.1.3旋轉旋轉操作時,cv2.getRotationMatrix2D()得到仿射變換函數(shù)cv2.warpAffine()的轉換矩陣。ret=cv2.getRotationMatrix2D(center,angle,scale)·center是旋轉的中心點?!ngle表示旋轉角度,正數(shù)為順時針旋轉,負數(shù)為逆時針旋轉?!cale表示變換尺度?!纠?-3】使用仿射變換函數(shù)cv2.warpAffine()實現(xiàn)圖像的旋轉。
importcv2ascvimage=cv.imread("F:/picture/panda.png")#讀入panda圖像h,w=image.shape[:2]#獲取圖像大小信息#得到轉換矩陣M,效果是以圖像的寬高的1/3為中心點順時針旋轉40°,縮小為原來的0.4M=cv.getRotationMatrix2D((w/3,h/3),40,0.4)imageMove=cv.warpAffine(image,M,(w,h))#進行仿射變換——旋轉cv.imshow("image",image)#顯示原始圖像cv.imshow("imageMove",imageMove)#顯示變換后的圖像cv.waitKey()cv.destroyAllWindows()在仿射變換的過程中,物體的轉換都是在二維空間中完成的,但是如果物體在三維空間中發(fā)生了轉換,這種轉換一般叫投影變換。4.3投影變換4.3.1原理簡介因為投影變換是在三維空間內(nèi)進行的,對其進行修正十分困難。如果物體是平面的,通過二維投影變換對此物體三維變換進行模型化,這就是專用的二維投影變換,可由如下公式描述:cv2.getPerspectiveTransform(src,dst)來計算投影變換矩陣,·dst表示目標圖像。·src表示原始圖像。注意這里需要輸入4組對應的坐標變換,src和dst分別是4×2的二維矩陣,其中每一行代表一個坐標,而且數(shù)據(jù)類型必須是32位浮點型,否則會報錯。4.3.2Python實現(xiàn)類似于仿射變換,OpenCV提供了cv2.warpPerspective()函數(shù)來實現(xiàn)投影變換功能。cv2.warpPerspective(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])·src表示原始的圖像?!表示投影變換矩陣?!size表示投影后圖像的大小?!lags表示插值方式?!orderMode表示邊界模式。·borderValue表示邊界值。其使用方法與仿射變換相似,只是輸入的變換矩陣變?yōu)?行3列的投影變換矩陣。
【例4-12】編寫程序,實現(xiàn)投影
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度特殊功能性內(nèi)墻涂料研發(fā)與應用合同3篇
- 二零二五年度公司對公司智能化辦公租賃合同3篇
- 2025上海市國有土地使用權出讓合同范本
- 二零二五年度能源企業(yè)公司掛靠能源供應合同3篇
- 2025年度內(nèi)部承包合同協(xié)議書:XX部門內(nèi)部承包銷售業(yè)績提成協(xié)議3篇
- 二零二五年度全款購車車輛認證合同模板3篇
- 二零二五年度農(nóng)村房屋贈與合同附帶農(nóng)用設備配套協(xié)議
- 2025年度土地流轉承包與農(nóng)村金融服務合作協(xié)議3篇
- 二零二五年度解除勞動合同經(jīng)濟補償金及員工心理咨詢服務合同3篇
- 2025年度辦公室租賃合同(含企業(yè)活動策劃與執(zhí)行)3篇
- 中國AI+Agent應用研究報告
- 2024年人教版初二道德與法治上冊期末考試卷(附答案)
- 2024至2030年中國工控安全行業(yè)發(fā)展狀況及投資潛力分析報告
- 校本課程《典籍里的中國》教案
- 四年級上冊信息技術教案-9演示文稿巧編輯 |人教版
- 2022年人力資源管理各專業(yè)領域必備知識技能
- 租賃(出租)物品清單表
- 提高聚氯乙烯卷材地面一次驗收合格率
- 甲型H1N1流感防治應急演練方案(1)
- LU和QR分解法解線性方程組
- 漏油器外殼的落料、拉深、沖孔級進模的設計【畢業(yè)論文絕對精品】
評論
0/150
提交評論