#模板匹配 import cv2 as cv import numpy as np def template_demo(): dog = cv.imread("E:/opencv/picture/dog.jpg") dog_nose = cv.imread("E:/opencv/picture/nose.jpg") cv.imshow("dog",dog) result = cv.matchTemplate(dog,dog_nose,cv.TM_CCORR_NORMED) h,w =dog_nose.shape[:2] min_val,max_val,min_loc,max_loc=cv.minMaxLoc(result) pt1 = max_loc pt2 = (pt1[0]+w,pt1[1]+h) cv.rectangle(dog,pt1,pt2,(0,255,0),2) cv.imshow("match",dog) print(result) #src = cv.imread("E:/opencv/picture/dog.jpg") #cv.imshow("inital_window",src) template_demo() cv.waitKey(0) cv.destroyAllWindows() 分析: 模板匹配通常用于目标检测。本文我们检测狗图片的鼻子。 • 我们需要两个主要组件: 1. 源图像(I):我们期望找到与模板图像匹配的图像 2. 模板图像(T):将与模板图像进行比较的补丁图像 1. result = cv.matchTemplate(dog,dog_nose,cv.TM_CCORR_NORMED) void cv::matchTemplate( cv::InputArray image, // 待匹配图像W*H cv::InputArray templ, // 模板图像,和image类型相同, 大小 w*h cv::OutputArray result, // 匹配结果图像, 类型 32F, 大小 (W-w+1)*(H-h+1) int method // 用于比较的方法 ); 其中method有: TM_SQDIFF_NORMED匹配数值越低表示匹配效果越好 TM_CCORR_NORMED,TM_CCOEFF_NORMED匹配数值越大表示匹配效果越好 result参数:(保存各个点匹配结果的参数) 模板匹配函数cvMatchTemplate依次计算模板与待测图片的重叠区域的相似度,并将结果存入映射图像result当中,也就是说result图像中的每一个点的值代表了一次相似度比较结果 模板在待测图像上每次在横向或是纵向上移动一个像素,并作一次比较计算 我们可以通过cv.minMaxLoc函数来确定结果矩阵的最大值和最小值的位置。 2. cv.minMaxLoc(result) 返回result数值中最小值以及最小值所在的位置和最大值以及最大值所在的位置。 3. 当知道哪个点匹配度最高时这个时候我们需要用矩阵把模板给标出来 C++: void rectangle(Mat& img, Point pt1,Point pt2,const Scalar& color, int thickness=1, int lineType=8, int shift=0) 第一个参数:要在哪个图像上画? 第二个参数:矩阵的左上角点坐标 第三个参数:矩阵的右下角点坐标 第四个参数:颜色
2022-10-22 12:01:12 20KB opencv
1
OpenGL是一套跨平台图形接口API规范。OpenGL之所以跨平台是因为各个平台都有根据OpenGL规范实现相应的API接口,在Windows,Linux,Mac OS X等平台都有各自的实现,各个平台会提供OpenGL的程序接口。OpenGL提供了一套图形接口API,而图形主要由显卡控制,所以OpenGL相当于一套操作显卡的API接口,显卡厂商(NVidia,ATI等)会对提供OpenGL的驱动,使用OpenGL也就是对显卡设备进行编程。并不存在一个OpenGL开发的SDK程序包,因为OpenGL只是一套规范,具体的实现与平台相关,且与显卡厂商相关。
2022-10-17 17:10:04 127.85MB opengl
1
深度学习系列课程资料分享,第一讲 课外学习资料,第二讲,传统神经网络,其他部分请看我上传的资源列表.......
2022-10-13 10:33:30 41.34MB 深度学习 人工智能
1
新型数字带通调制技术 新型数字带通调制技术 新型数字带通调制技术
2022-10-12 08:51:38 1.32MB 通信原理
1
西北工业大学计算机学院数据库原理实验报告(不含第八次大作业)
1
软件设计师考试大纲精华知识点笔记——【第八章 算法分析设计】,包括Word、PDF、有道云笔记链接
2022-09-28 22:38:34 10.89MB 软件设计师
1
继承(inheritance): 该机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构。体现了由简单到复杂的认识过程。 多态性(polymorphism): 多态性是考虑在不同层次的类中,以及在同一类中,同名的成员函数之间的关系问题。函数的重载,运算符的重载,属于编译时的多态性。以虚函数为基础的运行时的多态性是面向对象程序设计的标志性特征。 体现了类推和比喻的思想方法。
2022-09-25 21:21:32 565KB c++继承与多态课件ppt
1
第八版 本科教学版 离散数学及其应用 奇数编号练习及其答案 已经编辑完毕
飞思卡尔智能车竞赛电磁组程序。 1.实现了电感标定 不用因为更换赛道而调节电位器 2.采用归一化算法 使其有更好的适应性 3.FLISH 数据保存,不再因重启而重新修改参数 4.采用独特的参数调节方式,调节灰常方便,至于什么方法就自己研究下吧 。 5.利用MPU6050 进行车子的姿态检测 准确判断坡道和路障。
2022-09-21 22:01:29 17.89MB 标定 电感归一化 电磁组 电磁车归一化
架构: SpringBoot + Dubbo+ Redis + ES + Nginx + FDFS + ActiveMQ 主流分布式微服务架构。本系列教程共15季,本章节为第八季场景: 商品首页、商品详情、购物车、订单、支付、库存管理、全文搜索、秒杀、商家管理、分布式事务、单点登陆等 。项目架构图
1