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_loc0,max_loc1)

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)

运行结果:

相关推荐
ZhengEnCi6 小时前
09bad-斯坦福CS336作业一-构建优化器
人工智能
ZhengEnCi7 小时前
09bac-斯坦福CS336作业一-实现训练损失计算
人工智能
冬奇Lab7 小时前
Skill 系列(01):Skill 评测体系——如何量化一个 AI Skill 的质量
人工智能
兵慌码乱9 小时前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
IT_陈寒10 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
luckdewei12 小时前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
用户35218024547512 小时前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
米小虾12 小时前
手把手教你搭建第一个生产级AI Agent:从选型到实战的完整指南
人工智能·agent
任沫12 小时前
Agent之Function Call
javascript·人工智能·go
米小虾12 小时前
2026年AI Agent全面爆发:从开源生态到企业级应用的进化之路
人工智能·agent