0

要么我做错了什么,要么 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。我很快就会尝试另一个设置。

4

1 回答 1

1

基于他们文档中的函数定义

void cv::max(const Mat& src1,
             const Mat& src2,
             Mat& dst 
)

我怀疑你调用函数是错误的,通过使用&t3你传递一个指向 a cv::Mat(ie cv::Mat*) 的指针。该定义需要对 a 的引用cv::Mat。删除 &cv::max(t1,t2,t3);它应该编译。

于 2019-04-15T19:11:31.127 回答