cv :: Max中的错误?

时间:2019-04-15 18:31:42

标签: c++ opencv opencv-mat opencv4

或者我做错了什么,或者cv :: max有问题。 我以最明显的方式称呼它:

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

int main() {
    cv::Mat t1 = cv::Mat::zeros(cv::Size(3,3), CV_8UC1);
    cv::Mat t2 = cv::Mat::zeros(cv::Size(3,3), CV_8UC1);
    cv::Mat t3;

    cv::max(t1,t2,&t3);
    return 0;
}

并获得:

In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iostream:38:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ios:216:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__locale:15:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string:500:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string_view:176:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__string:56:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/algorithm:2627:12: error:
      called object type 'cv::Mat *' is not a function or function pointer
    return __comp(__a, __b) ? __b : __a;
           ^~~~~~

当前在OSX Mojave和AppleClang 10上。OpenCV4.1.0。 我将尽快尝试另一种设置。

1 个答案:

答案 0 :(得分:1)

基于their documentation

中的函数定义
void cv::max(const Mat& src1,
             const Mat& src2,
             Mat& dst 
)

我怀疑您通过使用&t3调用了错误的函数,您正在传递指向cv::Mat的指针(即cv::Mat*)。该定义期望引用cv::Mat。删除&cv::max(t1,t2,t3);,它将编译。