Opencv图片的旋转和图片的模板匹配

图片的旋转和图片的模板匹配

目录

  • 图片的旋转和图片的模板匹配
    • [1 图片的旋转](#1 图片的旋转)
      • [1.1 numpy旋转](#1.1 numpy旋转)
        • [1.1.1 函数](#1.1.1 函数)
        • [1.1.2 测试](#1.1.2 测试)
      • [1.2 opencv旋转](#1.2 opencv旋转)
        • [1.2.1 函数](#1.2.1 函数)
        • [1.2.2 测试](#1.2.2 测试)
    • [2 图片的模板匹配](#2 图片的模板匹配)
      • [2.1 函数](#2.1 函数)
      • [2.2 实际测试](#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 测试

图片

代码展示:

python 复制代码
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 测试

代码展示:

python 复制代码
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 实际测试

图片

代码展示:

python 复制代码
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)

运行结果:

相关推荐
NAGNIP20 小时前
GPT-5.1 发布:更聪明,也更有温度的 AI
人工智能·算法
NAGNIP20 小时前
激活函数有什么用?有哪些常用的激活函数?
人工智能·算法
2501_9444522321 小时前
字数统计 Cordova 与 OpenHarmony 混合开发实战
python
骚戴21 小时前
2025 Python AI 实战:零基础调用 LLM API 开发指南
人工智能·python·大模型·llm·api·ai gateway
Cherry的跨界思维21 小时前
【AI测试全栈:质量模型】4、新AI测试金字塔:从单元到社会的四层测试策略落地指南
人工智能·单元测试·集成测试·ai测试·全栈ai·全栈ai测试·社会测试
kobe_OKOK_21 小时前
tdeinge REST API 客户端
python·缓存·django
io_T_T21 小时前
Python os库 os.walk使用(详细教程、带实践)
python
亚马逊云开发者21 小时前
使用Amazon Nova模型实现自动化视频高光剪辑
人工智能
Tony Bai21 小时前
Go 的 AI 时代宣言:我们如何用“老”原则,解决“新”问题?
开发语言·人工智能·后端·golang
卤代烃21 小时前
🦾 可为与不可为:CDP 视角下的 Browser 控制边界
前端·人工智能·浏览器