当我删除`cv ::`时,为什么`randn`没有错误

时间:2015-04-28 10:02:21

标签: c++ opencv

当我使用- (void)viewDidLayoutSubviews { [self.imageView setFrame:CGSizeMake(320, self.view.frame.size.height* 1.5)]; [self.scrollView setContentSize:CGSizeMake(320, self.view.frame.size.height* 1.5)]; } 时,我意外地忘记了命名空间cv::,并且编译时没有错误。这是我的代码

randn

我在Windows中运行代码

#include <iostream>
#include <opencv2/core/core.hpp>

int main( int argc, char** argv )
{
    std::cout << "\n%%( Random Generator )%%\n"; 
    cv::Mat G = cv::Mat::ones(4,4, CV_64FC1);
    cv::Mat m = cv::Mat::zeros(1,1, CV_64FC1);
    cv::Mat s = cv::Mat::ones(1,1, CV_64FC1);
    std::cout << G << std::endl;
    randn(G, m, s);
   std::cout << G << std::endl;

    return 0;
}

我的问题是这个函数是否也是从cl /EHsc main.cpp /Fetest.exe /I D:\xxxx\opencv_2.4.10\build\include /link /LIBPATH:D:\xxxx\opencv_2.4.10\build\x86\vc12\lib opencv_core2410.lib 命名空间定义的?

1 个答案:

答案 0 :(得分:6)

您可以获得参数依赖查找(ADL,也称为Koenig查找)。本质上,名称在G参数类型的命名空间中查找,即cv::。 ADL主要用于查找运算符,但也适用于普通的命名函数。