图片的旋转和图片的模板匹配
目录
- 图片的旋转和图片的模板匹配
- 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)
运行结果: