当前位置: 首页 > news >正文

建设网站需要想好的问题网站留言自动短信提醒

建设网站需要想好的问题,网站留言自动短信提醒,asp.net mvc 企业网站,注册中文域名引言 在图像处理和计算机视觉中,模板匹配是一种常用的技术,用于在一幅较大的图像中查找与给定模板图像相似的部分。然而,在实际应用中,目标物体可能会出现在不同的角度,这就需要我们在匹配之前对模板进行旋转处理。本…

引言

在图像处理和计算机视觉中,模板匹配是一种常用的技术,用于在一幅较大的图像中查找与给定模板图像相似的部分。然而,在实际应用中,目标物体可能会出现在不同的角度,这就需要我们在匹配之前对模板进行旋转处理。本文将介绍如何使用 OpenCV 进行模板匹配,并演示如何处理旋转模板。

模板匹配原理

模板匹配是通过比较模板图像与目标图像中的每一个可能位置来完成的。OpenCV 提供了多种模板匹配的方法,其中 cv2.matchTemplate 是一个常用函数,它可以计算模板与目标图像之间的相似度。常见的匹配方法包括:

  • cv2.TM_SQDIFF:平方差匹配。
  • cv2.TM_CCORR:相关匹配。
  • cv2.TM_CCOEFF:相关系数匹配。
  • cv2.TM_CCOEFF_NORMED:归一化相关系数匹配。

在本文中,我们将使用 cv2.TM_CCOEFF_NORMED 方法进行模板匹配。

实验素材

代码讲解
  1. 读取图像和转换为灰度图

    import cv2
    import numpy as npimg_rgb = cv2.imread('picture_video/image.jpg')
    img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
    template = cv2.imread('picture_video/res.jpg', 0)

    解释:

    • 使用 cv2.imread 读取原始图像和模板图像。
    • 将原始图像转换为灰度图 img_gray,因为模板匹配通常在灰度图上进行。
  2. 旋转模板图像

    # 旋转 90 度,k=-1 表示顺时针旋转 90 度
    rotated_image1 = np.rot90(template, k=-1)
    # 旋转 90 度,k=1 表示逆时针旋转 90 度
    rotated_image2 = np.rot90(template, k=1)

    解释:

    • 使用 np.rot90 函数旋转模板图像。k=-1 表示顺时针旋转 90 度,k=1 表示逆时针旋转 90 度。
  3. 获取模板图像的尺寸

    h, w = template.shape[:2]

    解释:

    • 获取模板图像的高度 h 和宽度 w
  4. 使用模板匹配方法 cv2.matchTemplate 进行模板匹配

    res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
    res1 = cv2.matchTemplate(img_gray, rotated_image1, cv2.TM_CCOEFF_NORMED)
    res2 = cv2.matchTemplate(img_gray, rotated_image2, cv2.TM_CCOEFF_NORMED)

    解释:

    • 使用 cv2.matchTemplate 函数进行模板匹配,cv2.TM_CCOEFF_NORMED 方法用于计算归一化的相关系数。
  5. 设定匹配阈值并获取匹配结果

    threshold = 0.9
    loc = np.where(res >= threshold)
    loc1 = np.where(res1 >= threshold)
    loc2 = np.where(res2 >= threshold)

    解释:

    • 设定匹配阈值 threshold,只有匹配分数大于等于这个阈值的区域才会被认为是匹配成功的位置。
    • 使用 np.where 函数获取所有匹配分数大于等于阈值的点的坐标。
  6. 在原图上绘制匹配区域的矩形框

    for pt in zip(*loc[::-1]):cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 1)for pt in zip(*loc1[::-1]):cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 1)for pt in zip(*loc2[::-1]):cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 1)

    解释:

    • 使用 cv2.rectangle 函数在原图 img_rgb 上绘制矩形框,标出匹配成功的区域。
    • 矩形框的颜色为红色 (0, 0, 255),线宽为 1
  7. 显示结果图像

    cv2.imshow('res.jpg', img_rgb)
    cv2.waitKey(0)

    解释:

    • 使用 cv2.imshow 显示带有匹配区域的图像。
    • 使用 cv2.waitKey(0) 等待用户按键关闭窗口。
  8. 输出结果:

总结

通过上述代码演示,我们展示了如何在 OpenCV 中进行模板匹配,并处理旋转模板。模板匹配是一种基本的图像处理技术,广泛应用于目标检测、图像识别等领域。通过旋转模板,我们可以提高匹配的鲁棒性,即使目标物体在图像中处于不同的角度,也能准确地识别出来。这种方法在实际应用中非常有用,特别是在需要检测旋转目标物体的情况下。

http://www.yayakq.cn/news/749114/

相关文章:

  • 网站后端开发需要学什么wordpress中文瀑布流
  • phpcms v9 实现网站搜索企业首页模板
  • 吉林省住房与城乡建设厅网站快速搭建电子商务网站
  • 色一把做最好的看片网站微信seo什么意思
  • 在哪给人做网站wordpress 主题 ie6
  • 3d演示中国空间站建造专业建站网站
  • 建筑行业官方网站怎么建设免费小说网站
  • 哈尔滨网站建设设计建公司网站需要多少钱
  • 如何建立英文网站观澜建网站
  • 做一个卖东西的网站多少钱咨询网站模板
  • 网站建设编辑叫什么岗位南岸网站建设哪家好
  • 专门做2次元图片的网站竞价网络推广外包
  • 网站开发 兼职挣钱吗个人网站制作网站
  • 论坛网站制作长沙招聘
  • 哪个网站做非洲的生意页面设计元素
  • 单页面企业网站深圳响应式网站找哪里
  • linux建网站做电影网站怎么赚钱
  • 东莞常平新楼盘有哪些seo数据是什么意思
  • 360网站建设企业文化建设方案案例
  • 网站的基本类型网页游戏排行2020前十名
  • 做文案策划有些网站可看网站里的图片是怎么做的
  • 网站开发推荐资料虚拟商城网站
  • 神鹰网站建设公司单页关键词优化费用
  • 做装饬在哪家网站挂发稿流程
  • 平面设计网站有哪些wordpress分享主题
  • 山东工艺美术学院网站建设公司大厂建设局网站
  • 网站建设百度资源网站建设会用什么软件
  • 网站建设汇报评估网站响应式和非响应式
  • 三合一网站什么意思免费社区建站系统
  • 查企业免费的网站网站建设维护兼职