matlab的normxcorr2和 opencv的matchTemplate

想要转matlab中的normxcorr2, 发现matchTemplate中有一个算法是基于NCC的, 使用后发现其实与normxcorr2并不相同, 所以做一下记录.


matlab中normxcorr2和 opencv 3.0 中matchTemplate的异同之处

matlab—–normxcorr2简要说明

normxcorr2 算法原理
这里写图片描述

: 关键只在于返回的尺寸的大小:
假设 原始图像大小为 H×W H × W , 模板大小为 h×w h × w ,则normxcorr2返回的图像大小为  (H+h-1)× (W+w-1)  (H+h-1)× (W+w-1) ,

因为其移动匹配的方式如下:

(图1)模板位于图像的最左上角时:
模板位于左上角时

(图2)模板位于图像的最右下角时:
模板位于右下角时

opencv—-matchTemplate

matchTemplate算法原理
matchTemplate有多种匹配方式, 其中一下这种是和normxcorr2(NCC)相对应的,(我没搞错吧..)
这里写图片描述

: 关键只在于返回的尺寸的大小:
假设 原始图像大小为 H×W H × W , 模板大小为 h×w h × w ,则normxcorr2返回的图像大小为 (H-h+1)× (W-w+1) (H-h+1)× (W-w+1) ,

移动方式: 模板位于图像的最左上角时:
模板位于图像的最左上角时:
移动方式: 模板位于图像的最右下角时:
这里写图片描述

总结

matlab的normxcorr2 和 opencv的matchTemplate(TM_CCOEFF_NORMED)算法原理相同, 但是返回图的图像尺度不同.
normxcorr2 返回的尺度: (H+h-1)× (W+w-1) (H+h-1)× (W+w-1)
matchTemplate(TM_CCOEFF_NORMED)返回的尺度 (H-h+1)× (W-w+1) (H-h+1)× (W-w+1)

毕竟, normxcorr2目的是NCC, matchTemplate目的是模板匹配, 没毛病~

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB 中,`normxcorr2` 是一个用于计算二维图像之间归一化互相关的函数。它可以用来寻找一个小的模板在一个大的图像中的匹配位置。 `normxcorr2` 函数的语法如下: ```matlab c = normxcorr2(template, image) ``` 其中,`template` 是要匹配的小模板图像,`image` 是要在其中进行匹配的大图像。`template` 和 `image` 可以是灰度图像或彩色图像,但在彩色图像的情况下,函数将自动将其转换为灰度图像进行处理。 `normxcorr2` 函数将计算归一化互相关系数矩阵 `c`,其大小比 `image` 多出一个模板大小的边界。矩阵 `c` 的每个元素表示对应位置的模板与图像之间的归一化互相关系数。互相关系数越大,表示该位置与模板的匹配程度越高。 以下是一个示例,演示如何使用 `normxcorr2` 函数进行模板匹配: ```matlab % 读取图像和模板 image = imread('large_image.jpg'); template = imread('template.jpg'); % 将图像和模板转换为灰度图像 image_gray = rgb2gray(image); template_gray = rgb2gray(template); % 使用 normxcorr2 进行模板匹配 c = normxcorr2(template_gray, image_gray); % 找到最大互相关系数的位置 [maxValue, maxIndex] = max(c(:)); [row, col] = ind2sub(size(c), maxIndex); % 在图像上绘制矩形框标记匹配位置 imshow(image); hold on; rectangle('Position', [col, row, size(template_gray, 2), size(template_gray, 1)], 'EdgeColor', 'r', 'LineWidth', 2); hold off; ``` 在上述示例中,`normxcorr2` 函数将计算模板图像与大图像之间的归一化互相关系数,并找到具有最大互相关系数的位置。然后,通过在图像上绘制矩形框来标记匹配位置。 注意,`normxcorr2` 函数仅用于寻找模板在图像中的匹配位置,并不提供对匹配结果的定量度量。对于更精确的匹配度量和定位,可能需要使用其他方法和技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值