多目标轮廓匹配

前面我们使用模板匹配,得到的结果都是一个图,那么如果我们图片中有许多我们的目标,那么该如何找出来呢?

如上我们图片中有许多箭头和我们的模板一致,只不过方向不对,那么该如何匹配呢?

图片和模板处理

复制代码
ref=cv2.imread('jiantou.jpg')
cv2.imshow('jiantou', jt)
cv2.waitKey(0)
h,w= ref.shape[:2]


yuan=cv2.imread('yuan.jpg')
yuan1=yuan.copy()
cv2.imshow("yuan", yuan)
cv2.waitKey(0)

阈值选择

复制代码
result = cv2.matchTemplate(ref, yuan1, cv2.TM_CCOEFF_NORMED)
threshold =0.9
loc = np.where(result >= threshold)

我们得到的results是一个包含许多匹配度的,如何我们这里使用一个阈值来选择,之前我们选择的都是那个最大的。现在我们选匹配度较好的几个。(where具体看我主页单文章解释)

这里result是一个矩阵,表示以哪一个点做左上角时的匹配度。如何where可以返回这个点的位置。

画出

复制代码
for pt in zip(*loc[::-1]):
    cv2.rectangle(yuan,pt,(pt[0]+w,pt[1]+h),(0,0,255),1)

现在我们值画出了同方向的,那么我们该如何检测不同方向的呢?

旋转

复制代码
rotated_image1 =np.rot90(ref, k=-1)
rotated_image1 =np.rot90(ref, k=1)

这里k=-1顺时针,k=1为逆时针

这是我们可以把箭头旋转一下,如何再进行模板匹配。(关于zip我另一篇文章专门写)

复制代码
rotated_image1 =np.rot90(ref, k=-1)
result1 = cv2.matchTemplate(rotated_image1, yuan1, cv2.TM_CCOEFF_NORMED)

loc1 = np.where(result1 >= threshold)

for pt in zip(*loc1[::-1]):
    cv2.rectangle(yuan,pt,(pt[0]+w,pt[1]+h),(0,0,255),1)
cv2.imshow('yuan', yuan)
cv2.waitKey(0)

rotated_image2 =np.rot90(ref, k=1)
cv2.imshow("yuan1", rotated_image2)
cv2.waitKey(0)
result2 = cv2.matchTemplate(rotated_image2, yuan1, cv2.TM_CCOEFF_NORMED)

loc2 = np.where(result2 >= threshold)

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


cv2.imshow("yuan", yuan)
cv2.waitKey(0)
相关推荐
曦月逸霜23 分钟前
啥是RAG 它能干什么?
人工智能·python·机器学习
AI医影跨模态组学29 分钟前
Lancet Digit Health(IF=24.1)广东省人民医院刘再毅&南方医科大学南方医院梁莉等团队:基于可解释深度学习模型预测胶质瘤分子改变
人工智能·深度学习·论文·医学·医学影像·影像组学
应用市场30 分钟前
AI 编程助手三强争霸(2026 版):Claude、Gemini、GPT 各自擅长什么?
人工智能·gpt
AC赳赳老秦1 小时前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
脑极体1 小时前
从Token消耗到DAA增长,AI价值标尺正在重构
人工智能·重构
csdn小瓯1 小时前
LangGraph自适应工作流路由机制:从关键词匹配到智能决策的完整实现
人工智能·fastapi·langgraph
QYR-分析1 小时前
高功率飞秒激光器行业发展现状、市场机遇及未来趋势分析
大数据·人工智能
欲儿2 小时前
magicCamera—魔术师的 AR 卡牌应用
opencv·安卓·魔术师
AI医影跨模态组学2 小时前
J Clin Oncol(IF=43.4)美国Cedars-Sinai医学中心等团队:基于计算组织学人工智能的晚期胰腺癌化疗选择预测性生物标志物的开发与验证
人工智能·机器学习·论文·医学·医学影像·影像组学
冬奇Lab2 小时前
RAG 系列(十六):Graph RAG——用知识图谱解决多跳关系问题
人工智能·llm