数字图像处理之图像几何变换
生活随笔
收集整理的這篇文章主要介紹了
数字图像处理之图像几何变换
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
圖像的幾何變換包括以下幾個方面:
導(dǎo)入庫
顯示圖片函數(shù)
def show(img):if img.ndim == 2:plt.imshow(img,cmap='gray')else:plt.imshow(cv.cvtColor(img,cv.COLOR_RGB2BGR))plt.show()圖片的剪裁、放大和縮小
#圖片剪裁 img = cv.imread('C:\PerfLogs\pc4.jpg') img_pg = img[1250:1750,300:1000,:] show(img_pg) #opencv中自帶的resize函數(shù) img2 = cv.resize(img,(500,400)) show(img2)原圖:
剪裁過后:
調(diào)整大小:
平移變換
平移矩陣:
錯切變換
其實錯切變換和平移變換的公式是一樣的,只不過矩陣的參數(shù)不同,可以根據(jù)平移變換來考慮錯切變換。
水平錯切:
垂直錯切:
鏡像變換
考慮對稱性
上面的代碼是自己寫的變換矩陣,然后實現(xiàn)的鏡像變換。其實opencv中是有自帶的庫函數(shù)進(jìn)行鏡像變換的。但是實際使用的時候,可能需要根據(jù)不同的對稱線進(jìn)行鏡像變換,所以學(xué)會變換矩陣的做法也是很必要的。
#鏡像變換函數(shù) img4 = cv.flip(img ,1)#水平鏡像變換 img5 = cv.flip(img ,0)#垂直鏡像變換 img6 = cv.flip(img ,-1)#中心鏡像變換 show(np.hstack([img4,img5,img6]))旋轉(zhuǎn)變換
公式推導(dǎo):
opencv自帶的庫函數(shù)進(jìn)行旋轉(zhuǎn)變換-利用opencv自帶的庫函數(shù)求出變換矩陣
#opencv函數(shù)進(jìn)行旋轉(zhuǎn)變換 h,w,c = img.shape M2 = cv.getRotationMatrix2D((w//2,h//2),45,1)#中心點、角度、放大還是縮小 img5 = cv.warpAffine(img,M2,(1333,1203))
opencv自帶的庫函數(shù)直接實現(xiàn)旋轉(zhuǎn)變換,但是只能是特殊角度的旋轉(zhuǎn),例如90°,180°。
透視變換
所謂的透視變換就是將圖片偏向正視角的部分朝向正視角。如下所示:
總結(jié)
以上是生活随笔為你收集整理的数字图像处理之图像几何变换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql格式化工具
- 下一篇: Window10升级遇到大坑错误代码:0