【问题标题】:corr2 in matlab returns NaNmatlab中的corr2返回NaN
【发布时间】:2016-10-30 03:15:46
【问题描述】:

我正在尝试使用 corr2 进行模板匹配。但是当我将第一个像素和模板矩阵周围的窗口提供给函数时,我得到 NaN 错误。

For ex :- 
template = uint8([1 1 1 0; 1 1 1 0;1 1 1 0]); 
window = uint8([0 0 0 0; 0 0 0 0;0 0 0 0]); 
When i do corr2 on this two matrix :-
r = corr2(template,window);
r = NaN.

但是,如果我将矩阵中的零值之一更改为窗口中的 1,它会给我除 NaN 以外的输出。 我正在关注链接:- https://www.youtube.com/watch?v=Q-OzmDen4HU 对于模板匹配,第一个像素的输出显示为 0。我没有找到我做错的地方。

【问题讨论】:

    标签: matlab image-processing correlation


    【解决方案1】:

    Corr2 Documentation

    如果您查看页面底部的算法,它会给出等式,其结果将由 Corr2 表示。

    您的第二个矩阵是 0 矩阵,因此等式分母中的第二个总和将为 0,您将除以 0。

    【讨论】:

    • 那么理想的方法是什么?在视频链接中,显示的是零而不是 NaN。我是 Matlab 的新手,所以我发现处理这种情况有点困难。
    • 如果您在计算之前检查是否 'nnz(template) == 0' 或 'nnz(window) == 0',那么您将知道结果将是 0 无论如何并进行输出。
    猜你喜欢
    • 2016-02-28
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 2013-05-24
    相关资源
    最近更新 更多