OpenCV 子矩阵(类型短)的问题
Issue with OpenCV submatrix (type short)
我在创建一个从更大的矩阵中获取的新(子)矩阵时遇到了问题,我希望有人能向我伸出援助之手。
我已将问题缩小到以下小代码片段:
cv::Mat* rightBestX;
rightBestX = new cv::Mat(4, 4, CV_16UC1); // short matrix
// fill rightBestX matrix with values
const cv::Rect r2(0, 0, 2, 2);
cv::Mat x = rightBestX->operator()(r2);
cv::Mat_<short> leftBestXRegion = x; // x is not equal to cv::Mat_<short>, according template<typename _Tp> inline Mat_<_Tp>& Mat_<_Tp>::operator = (const Mat& m)
//cv::Mat_<short> leftBestXRegion = results.leftBestX->operator()(r2);
以上似乎适用于浮点类型矩阵,但当我使用 short 时则不然。
这个想法是不复制数据,而是使用来自 rightBestX 的数据引用。它已成功复制到 x。但是,当执行最后一行代码时,它会丢失(与 x 的代码不同)。此外,x的引用计数为2,但左最佳XRegion为1...
同样,这适用于浮点数。有谁知道这里可能出了什么问题?
尝试使用 ushort
而不是 short
。另外,检查您是否正确填写了矩阵(我只是这么说,因为我运行了它,即使使用short
它对我来说也可以正常工作)
相关文章:
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 指针问题:从不兼容的类型"int"分配给"int *"
- 特征返回类型的 pybind11 问题
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 使用泛型类型推送到堆栈时出现问题
- 在点云库 (PCL) 中使用自定义点类型的问题
- reinterpret_cast,只读访问,简单的可复制类型,会出什么问题?
- 为<vtkDataArray> VTK 非结构化网格声明 vtkSmartPointer 类型的变量时出现问题
- 模板<类型名称...参数>的问题
- 类型转换问题
- GLUT 问题:重新声明 c++ 内置类型'wchar_t'时出错
- printf 数据类型说明符复杂问题
- 缺少类型说明符和另一个问题
- 拆分 pybind11 模块和自动类型转换问题
- 类型转换问题:返回为整数而不是浮点/类型
- (2 问题)"类"类型重新定义(即使 #pragma 一次),以及静态函数内的静态成员对象初始化?
- 我的 SWIG 类型图有什么问题?
- 从标准输入读取多个类型时出现问题