我有以下内容:
Mat bladArray(Mat base) {
std::vector<int> vec;
for (int x = 0; x < base.cols; x++) {
for (int y = 0; y < base.rows; y++) {
vec.push_back(y * base.cols + x);
}
}
return Mat(vec);
}
//input = VideoCapture cap(0);
//fish is similair to bladArray
Mat warp(Mat input) {
if (!f) {
fish = genfish(input);
f = true;
}
if (!b) {
base = bladArray(input);
b = true;
}
Mat ret;
remap(input, ret, base, fish, 0, BORDER_CONSTANT, Scalar());
return ret;
}
这会产生以下错误:
modules/imgproc/src/imgwarp.cpp:3128: error: (-215) ((map1.type() == CV_32FC2 || map1.type() == CV_16SC2) && !map2.data) || (map1.type() == CV_32FC1 && map2.type() == CV_32FC1) in function remap
我理解这意味着类型不正确但opencv中的类型如何工作?
是否有一种简单的方法可以将mat的类型设置为重映射接受的类型?无论如何,重映射都接受哪些类型?