幾何運算
- 平移
- 鏡像
- 水平鏡像
- 垂直鏡像
- 旋轉
- 以影像左上角為旋轉中心
- 以影像中心為旋轉中心
- 縮放
- 插值演算法
- 最近鄰插值演算法
- 雙線性插值演算法
- 三次內插法
改變影像中物體物件(像素)之間的空間關系,
平移

# 定義平移矩陣,需要是numpy的float32型別# x軸平移50,y軸平移80, 2*3矩陣
M = np.array([[1, 0, 50],
[0, 1, 80]], dtype=np.float32)
# 用仿射變換實作平移
new_image = cv2.warpAffine(image, M, (w, h), borderValue=(0, 0, 0))

鏡像

水平鏡像

# Flipped Horizontally 水平翻轉
Horizontal = cv2.flip(image, 1)

垂直鏡像

# Flipped Vertically 垂直翻轉
Vertical = cv2.flip(image, 0)

旋轉
以影像左上角為旋轉中心

# 定義旋轉矩陣, 2x3
M = np.array([[ np.cos(Beta), np.sin(Beta), 0],
[-np.sin(Beta), np.cos(Beta), 0]], dtype=np.float32)
# 用仿射變換實作旋轉
new_image = cv2.warpAffine(image, M, (w, h))

以影像中心為旋轉中心
# 定義旋轉矩陣,這次使用cv2.getRotationMatrix2D()這個函式,
# 其中第一個引數為旋轉的中心點,第二個為旋轉角度,第三個為縮放比例
M = cv2.getRotationMatrix2D((h/2,w/2), 30, 1)
print(M)
# 用仿射變換實作旋轉
new_image = cv2.warpAffine(image, M, (w, h), borderMode=cv2.BORDER_DEFAULT)

縮放

new_image = cv2.resize(image, (0, 0), fx=3, fy=3, interpolation=cv2.INTER_NEAREST)

插值演算法
最近鄰插值演算法
cv2.INTER_NEAREST
雙線性插值演算法
cv2.INTER_LINEAR
三次內插法
cv2.INTER_CUBIC
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/303884.html
標籤:python
