了解 Reduce() 函数异常:不支持的输入和输出数组格式组合
Understanding Reduce() function exception: Unsupported combination of input and output array formats
我是 OpenCV 的新手,我想学习如何正确使用函数 reduce()。
OpenCVSharp 函数说明:https://shimat.github.io/opencvsharp_docs/html/7bb05237-7ff6-0e19-bfeb-36ea352b3051.htm
我创建了一个自定义 Mat 对象并在其上应用了 Reduce 函数。
int[,] mat2d = new int[,]
{
{ 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
{ 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
{ 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
{ 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
};
Mat testMat = new Mat(4, 14, MatType.CV_32S, mat2d);
Mat reducedMat = testMat.Reduce(ReduceDimension.Row,
ReduceTypes.Sum,
MatType.CV_32S);
我期望 reducedMat 将是一个一维数组,其中索引 i 处的每个元素都包含 testMat 中第 i 行的总和。
不幸的是我得到了一个错误 "OpenCVException: Unsupported combination of input and output array formats"。
我还尝试将 ReduceDimension 参数和 dtype 参数更改为每个可能的选项,但没有成功。
答案是将 int[,] mat2d
替换为 byte[,] mat2d
。
原来 int
不是 reduce 的有效类型。
我是 OpenCV 的新手,我想学习如何正确使用函数 reduce()。
OpenCVSharp 函数说明:https://shimat.github.io/opencvsharp_docs/html/7bb05237-7ff6-0e19-bfeb-36ea352b3051.htm
我创建了一个自定义 Mat 对象并在其上应用了 Reduce 函数。
int[,] mat2d = new int[,]
{
{ 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
{ 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
{ 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
{ 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
};
Mat testMat = new Mat(4, 14, MatType.CV_32S, mat2d);
Mat reducedMat = testMat.Reduce(ReduceDimension.Row,
ReduceTypes.Sum,
MatType.CV_32S);
我期望 reducedMat 将是一个一维数组,其中索引 i 处的每个元素都包含 testMat 中第 i 行的总和。
不幸的是我得到了一个错误 "OpenCVException: Unsupported combination of input and output array formats"。
我还尝试将 ReduceDimension 参数和 dtype 参数更改为每个可能的选项,但没有成功。
答案是将 int[,] mat2d
替换为 byte[,] mat2d
。
原来 int
不是 reduce 的有效类型。