Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Opencv源代码中的注释是否错误?_C++_Opencv - Fatal编程技术网

C++ Opencv源代码中的注释是否错误?

C++ Opencv源代码中的注释是否错误?,c++,opencv,C++,Opencv,当我阅读OpenCV中函数imread()的源代码时,我发现在返回行前面有一条注释:///返回对数据的引用 我认为这个评论是错误的?因为img这里有一个局部变量,它在函数调用之后过期,所以我们不能返回它的引用。另外:定义的返回值是 Mat < /Cl>不 MAT和(我是C++初学者,也许这个问题有点愚蠢?这个函数位于代码> opencv/MullGC/CODES/SRC/LooSuf.CPP ) 看来这可能是拙劣的措辞。你是对的,这不是C++引用,而且对象肯定会被值复制。 但我认为该评论的作者可

当我阅读OpenCV中函数
imread()
的源代码时,我发现在返回行前面有一条注释:///返回对数据的引用
我认为这个评论是错误的?因为
img
这里有一个局部变量,它在函数调用之后过期,所以我们不能返回它的引用。另外:定义的返回值是<代码> Mat < /Cl>不<代码> MAT和<代码>(我是C++初学者,也许这个问题有点愚蠢?这个函数位于代码> opencv/MullGC/CODES/SRC/LooSuf.CPP )


看来这可能是拙劣的措辞。你是对的,这不是C++引用,而且对象肯定会被值复制。 但我认为该评论的作者可能提到了数据本身,它是在
Mat
中处理的。但从这几行代码来看,这并不完全明显


它仍然是拙劣的措辞,并导致这种混乱。

什么是class
Mat
的声明?它是否可能通过包含对分配了较长生存期的数据的引用/句柄而充当引用/句柄语义类型?那么注释就正确了(在非文字意义上)。这只是一个口语--
img
引用了底层图像数据。这就是你用它的目的。哦,天哪!那听起来很合理!谢谢(真是个愚蠢的问题)————————————————————————————————一点都不愚蠢。它表明你理解你正在阅读的内容,并且问题和解释一样合理。
Mat imread( const String& filename, int flags )
{
    CV_TRACE_FUNCTION();

    /// create the basic container
    Mat img;

    /// load the data
    imread_( filename, flags, img );

    /// optionally rotate the data if EXIF' orientation flag says so
    if( !img.empty() && (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED )
    {
        ApplyExifOrientation(filename, img);
    }

    /// return a reference to the data
    return img;
}