圖片的旋轉和圖片的模板匹配
目錄
- 圖片的旋轉和圖片的模板匹配
- 1 圖片的旋轉
- 1.1 numpy旋轉
- 1.1.1 函數
- 1.1.2 測試
- 1.2 opencv旋轉
- 1.2.1 函數
- 1.2.2 測試
- 2 圖片的模板匹配
- 2.1 函數
- 2.2 實際測試
1 圖片的旋轉
1.1 numpy旋轉
1.1.1 函數
- np.rot90(kl,k=1),k=1逆時針旋轉90度,kl為圖片
- np.rot90(kl,k=-1),k=-1順時針旋轉90度,kl為圖片
1.1.2 測試
圖片
代碼展示:
import numpy as np
kl = cv2.imread('kl.jpg')
kl_rot901 = np.rot90(kl,k=1)
kl_rot90_1 =np.rot90(kl,k=-1)
cv2.imshow('kl',kl)
cv2.waitKey(0)
cv2.imshow('kl_rot901',kl_rot901)
cv2.waitKey(0)
cv2.imshow('kl_rot90_1',kl_rot90_1)
cv2.waitKey(0)
運行結果:
1.2 opencv旋轉
1.2.1 函數
- cv2.rotate(kl,cv2.ROTATE_90_CLOCKWISE),順時針90度
- cv2.rotate(kl,cv2.ROTATE_90_COUNTERCLOCKWISE),逆時針90度
- cv2.rotate(kl,cv2.ROTATE_180),180度
1.2.2 測試
代碼展示:
import cv2
kl = cv2.imread('kl.jpg')
kl_ROTATE_90_CLOCKWISE = cv2.rotate(kl,cv2.ROTATE_90_CLOCKWISE)
kl_ROTATE_180 = cv2.rotate(kl,cv2.ROTATE_180)
kl_ROTATE_90_COUNTERCLOCKWISE = cv2.rotate(kl,cv2.ROTATE_90_COUNTERCLOCKWISE)
cv2.imshow('kl',kl)
cv2.waitKey(0)
cv2.imshow('kl_ROTATE_90_COUNTERCLOCKWISE',kl_ROTATE_90_COUNTERCLOCKWISE)
cv2.waitKey(0)
cv2.imshow('kl_ROTATE_90_CLOCKWISE',kl_ROTATE_90_CLOCKWISE)
cv2.waitKey(0)
cv2.imshow('kl_ROTATE_180',kl_ROTATE_180)
cv2.waitKey(0)
運行結果:
2 圖片的模板匹配
2.1 函數
- re=cv2.matchTemplate(kl,bt,cv2.TM_CCOEFF),進行匹配
- min_val,max_val,min_loc,max_loc = cv2.minMaxLoc(re),匹配得分和坐標
- min_val最小得分,max_val,最大得分
- min_loc,最小得分坐標,max_loc,最大得分坐標(x,y)=(max_loc[0],max_loc[1])
2.2 實際測試
圖片
代碼展示:
import cv2
bt = cv2.imread('bt.png')
kl = cv2.imread('kl.png')
h,w = bt.shape[:2]
re = cv2.matchTemplate(kl,bt,cv2.TM_CCOEFF)
min_val,max_val,min_loc,max_loc = cv2.minMaxLoc(re)
tp_left = max_loc
bt_right = (tp_left[0]+w, tp_left[1]+h)
kl_copy = kl.copy()
kl_bt = cv2.rectangle(kl_copy,tp_left,bt_right,(255,0,0),2)
cv2.imshow('bt',bt)
cv2.waitKey(0)
cv2.imshow('kl',kl)
cv2.waitKey(0)
cv2.imshow('kl_bt',kl_bt)
cv2.waitKey(0)
運行結果: