Python 机器视觉 - 基于opencv图像模板匹配实现的简单人脸匹配实例演示,matchTemplate的6大模板匹配算法

简介: Python 机器视觉 - 基于opencv图像模板匹配实现的简单人脸匹配实例演示,matchTemplate的6大模板匹配算法

     

OpenCV 图像匹配算法

第一章:图像模板匹配演示

① 效果展示1

这是我要进行匹配的图片:

image.png

匹配后的效果:

image.png

② 效果展示2

这是我要进行匹配的图片:

image.png

匹配后的效果:

image.png

③ 实现源码

实现源码如下:

这里使用了 CV_TM_SQDIFF 算法,调用方法为 cv.TM_SQDIFF

import cv2 as cv
def template_matching(img_match, img, arithmetic_model):
    '''
     【作用】
      进行图片模板匹配
     【参数1】
      模板图片
     【参数2】
      进行匹配的图片
     【参数3】
      算法模型
     【返回】
    '''
    # 进行模板匹配
    result = cv.matchTemplate(img, img_match, arithmetic_model)
    # 获取最小最大匹配值,还有对应的坐标
    min_value, max_value, min_coordinate, max_coordinate = cv.minMaxLoc(result)
    # 默认最佳最大值,当算法为CV_TM_SQDIFF或CV_TM_SQDIFF_NORMED时改为最小值
    best_coordinate = max_coordinate;
    if(arithmetic_model == cv.TM_SQDIFF or arithmetic_model == cv.TM_SQDIFF_NORMED):
        best_coordinate = min_coordinate;
    # 获取匹配图片的高和宽
    m_height, m_width = img_match.shape[:2]
    # 矩形的起始点和结束点
    r_start = best_coordinate
    r_end = (best_coordinate[0] + m_width, best_coordinate[1] + m_height);
    # 矩形的颜色和线的宽度
    r_color = (0, 0, 0)
    r_line_width = 2
    # 绘制矩形并展示
    cv.rectangle(img, r_start, r_end, r_color, r_line_width)
    cv.imshow("Xiao Lanzao", img)
# 传入图片数据
img_match = cv.imread("./image/baidu-ico.png")
img = cv.imread("./image/baidu-sousuo.png")
template_matching(img_match, img, cv.TM_SQDIFF)
cv.waitKey(0)
cv.destroyAllWindows()

第二章:六大模板匹配算法

在一些复杂的场景下,从简单的平方差算法到更复杂的相关系数算法,匹配的准确率会不断提高,但是计算量也同时增加了。

① CV_TM_SQDIFF【平方差匹配】

平方差匹配:CV_TM_SQDIFF

说明:

利用平方差进行匹配。

特点:系数越小匹配程度越好,最小值 0

公式如下:

image.png

② CV_TM_SQDIFF_NORMED【标准平方差匹配】

标准平方差匹配:CV_TM_SQDIFF_NORMED

特点同上①。

公式如下:

image.png

③ CV_TM_CCORR【相关匹配】

相关匹配:CV_TM_CCORR

利用模板和图像间的乘法操作。

特点: 系数越高匹配效果越好,最小值 0

公式如下:

image.png

④ CV_TM_CCORR_NORMED【标准相关匹配】

标准相关匹配:CV_TM_CCORR_NORMED

特点同③。

公式如下:

image.png

其中:

image.png

⑤ CV_TM_CCOEFF【相关系数匹配】

相关系数匹配 CV_TM_CCOEFF

利用模版对其均值的相对值与图像对其均值的相关值进行匹配。

特点: 系数越高匹配系数越好,最大值为 1,最小为 -1

公式如下:

image.png

其中:

image.png

⑥ CV_TM_CCOEFF_NORMED【标准相关系数匹配】

标准相关系数匹配:CV_TM_CCOEFF_NORMED

特点同上⑤。

公式如下:

image.png

喜欢的点个赞❤吧!

   

目录
相关文章
|
2月前
|
编解码 算法
改进SIFT算法实现光学图像和SAR图像配准
改进SIFT算法实现光学图像和SAR图像配准
|
23天前
|
存储 监控 算法
基于文化优化算法图像量化(Matlab代码实现)
基于文化优化算法图像量化(Matlab代码实现)
|
15天前
|
存储 算法 生物认证
基于Zhang-Suen算法的图像细化处理FPGA实现,包含testbench和matlab验证程序
本项目基于Zhang-Suen算法实现图像细化处理,支持FPGA与MATLAB双平台验证。通过对比,FPGA细化效果与MATLAB一致,可有效减少图像数据量,便于后续识别与矢量化处理。算法适用于字符识别、指纹识别等领域,配套完整仿真代码及操作说明。
|
3月前
|
机器学习/深度学习 监控 算法
基于单尺度Retinex和多尺度Retinex的图像增强算法实现
基于单尺度Retinex(SSR)和多尺度Retinex(MSR)的图像增强算法实现
191 1
|
3月前
|
存储 算法 数据安全/隐私保护
基于FPGA的图像退化算法verilog实现,分别实现横向和纵向运动模糊,包括tb和MATLAB辅助验证
本项目基于FPGA实现图像运动模糊算法,包含横向与纵向模糊处理流程。使用Vivado 2019.2与MATLAB 2022A,通过一维卷积模拟点扩散函数,完成图像退化处理,并可在MATLAB中预览效果。
|
3月前
|
监控 算法 决策智能
基于盲源分离与贝叶斯非局部均值的图像降噪算法
基于盲源分离与贝叶斯非局部均值的图像降噪算法
85 0
|
5月前
|
SQL 安全 算法
解读 Python 3.14:模板字符串、惰性类型、Zstd压缩等7大核心功能升级
Python 3.14 引入了七大核心技术特性,大幅提升开发效率与应用安全性。其中包括:t-strings(PEP 750)提供更安全灵活的字符串处理;类型注解惰性求值(PEP 649)优化启动性能;外部调试器API标准化(PEP 768)增强调试体验;原生支持Zstandard压缩算法(PEP 784)提高效率;REPL交互环境升级更友好;UUID模块扩展支持新标准并优化性能;finally块语义强化(PEP 765)确保资源清理可靠性。这些改进使Python在后端开发、数据科学等领域更具竞争力。
205 5
解读 Python 3.14:模板字符串、惰性类型、Zstd压缩等7大核心功能升级
|
4月前
|
算法 数据安全/隐私保护
基于混沌加密的遥感图像加密算法matlab仿真
本项目实现了一种基于混沌加密的遥感图像加密算法MATLAB仿真(测试版本:MATLAB2022A)。通过Logistic映射与Baker映射生成混沌序列,对遥感图像进行加密和解密处理。程序分析了加解密后图像的直方图、像素相关性、信息熵及解密图像质量等指标。结果显示,加密图像具有良好的随机性和安全性,能有效保护遥感图像中的敏感信息。该算法适用于军事、环境监测等领域,具备加密速度快、密钥空间大、安全性高的特点。
|
4月前
|
存储 算法 数据安全/隐私保护
基于DNA算法的遥感图像加解密matlab仿真
本程序基于DNA算法实现遥感图像加密与解密,利用DNA分子双螺旋结构和碱基配对规则完成信息编码。主要步骤包括图像预处理、DNA编码、DNA操作(杂交、酶切、连接)及密钥生成管理。通过直方图、相关性、熵和解密后图像质量分析验证效果。程序在MATLAB2022A版本运行,具有高效性和安全性,但需解决操作准确性与密钥管理复杂性等挑战。
|
6月前
|
算法 安全 数据安全/隐私保护
基于AES的遥感图像加密算法matlab仿真
本程序基于MATLAB 2022a实现,采用AES算法对遥感图像进行加密与解密。主要步骤包括:将彩色图像灰度化并重置大小为256×256像素,通过AES的字节替换、行移位、列混合及轮密钥加等操作完成加密,随后进行解密并验证图像质量(如PSNR值)。实验结果展示了原图、加密图和解密图,分析了图像直方图、相关性及熵的变化,确保加密安全性与解密后图像质量。该方法适用于保护遥感图像中的敏感信息,在军事、环境监测等领域具有重要应用价值。
206 35

热门文章

最新文章

推荐镜像

更多