C++ 函数重新映射的参数错误
我有以下opencv代码:C++ 函数重新映射的参数错误,c++,function,opencv,arguments,signature,C++,Function,Opencv,Arguments,Signature,我有以下opencv代码: InputArray fish =InputArray(ra); InputArray base = InputArray(ra); Mat warp(Mat input) { if (!f) { fish = genfish(input); f = true } if (!b) { base = bladArray; b = true } Mat ret;
InputArray fish =InputArray(ra);
InputArray base = InputArray(ra);
Mat warp(Mat input) {
if (!f) {
fish = genfish(input);
f = true
}
if (!b) {
base = bladArray;
b = true
}
Mat ret;
InputArray i = InputArray(input);
OutputArray p;
remap(i, p, fish, bladArray, 0, BORDER_CONSTANT, Scalar());
}
这段代码背后的想法是在图像上有效地应用鱼眼校正(这就是过滤器被缓冲的原因)。问题是,很明显,我将错误的参数传递给了remap函数。根据合同(第273页),我们有以下签名:
void remap ( InputArray src , OutputArray dst , InputArray map1, InputArray map2 , int interpolation , int borderMode =BORDER_CONSTANT, const Scalar& borderValue =Scalar() )
现在
这一切似乎都符合签名,但它一直告诉我我的签名是错误的。我做错了什么 对args使用cv::Mat,而不是InputArray或OutputArraytried,但两者都不起作用,或者您的意思是切换所有参数?显然。这就是你为什么这么做的原因。尽管如此,还是返回到cv::Mat并重试;垫输出;重新映射(输入、输出、fish、bladArray、0);谢谢你也应该把鱼和布拉达雷放在垫子里
InputArray src = i
OutputArray dst= p
InputArray map1=fish
InputArray map2=bladarray
int interpolation=0
int bordermode=BORDER_CONSTANT
Scaler borderValue=scaler();