或者我做错了什么,或者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。 我将尽快尝试另一种设置。
答案 0 :(得分:1)
void cv::max(const Mat& src1,
const Mat& src2,
Mat& dst
)
我怀疑您通过使用&t3
调用了错误的函数,您正在传递指向cv::Mat
的指针(即cv::Mat*
)。该定义期望引用cv::Mat
。删除&cv::max(t1,t2,t3);
,它将编译。