矩阵类型OpenCV
Matrix type OpenCV
我想编写一些通用函数,该函数对Opencv 3.1 cv::Mat
对象的单个元素进行操作,例如:
template <typename T>
T accumulate(cv::Mat mat){
T acc=0;
for(int i=0;i<mat.cols();i++)
for(int j=0;j<mat.rows();j++)
acc += mat.at<T>(i,j);
return acc;
}
问题是我已经阅读了有关数据类型的文章,并且我对如何实现(或调用)此类函数感到非常困惑。
我的意思是:假设mat
类型是CV_32FC
。通过accumulate<float>(mat)
正确调用它accumulate
用户的责任。这是一个著名的错误来源(堆栈溢出充满了问题,因为人们在调用at
时使用错误的类型)。
如何避免这种情况并自动执行此过程?
OpenCV 中有一个从 Mat
类派生的Mat_<T>
模板。您也许可以使用cv::Mat_<T> mat
.
然后,您应该能够在cv::Mat_<float>
上拨打accumulate()
例如。
请参阅 OpenCV Mat_
类参考:http://docs.opencv.org/trunk/df/dfc/classcv_1_1Mat__.html#gsc.tab=0
相关文章:
- OpenCV C++:当垫子类型未知时无法访问垫子元素?
- 在头文件中使用opencv类型来实现未定义的标识符
- 为什么OpenCV中没有CV_64S类型
- 如何通过opencv中的程序参数定义特征类型?
- 如何在OpenCV中存储部分轮廓点喜欢新矢量中的左侧,该类型为<vector<vector<Point>>
- 确定 opencv c++ 中 StatModel 的类型
- 如何在OpenCV中使用双类型映射进行重新映射
- 在 opencv 上将 vec 类型转换为标量类型
- 使用python预处理后,C++(opencv)中的垫子类型数据与image_to_array相同
- Mat的convertTo函数在OpenCV中将灰度图像的类型转换为CV_32F时抱怨断言错误
- OPENCV点类型转换
- ffmpeg/opencv 如何在分类后执行边缘检测 帧的类型
- Opencv C++ 声明一个类型为 uint8 的矩阵
- OpenCV - 函数 cvarrToMat 中的未知数组类型
- 调整图像类型"垫子"的大小 opencv C++
- 将RGB颜色图像转换为OpenCV C 中的索引颜色图像类型
- 在opencv中,使用垫子类型计算马氏距离太慢了。如何提高效率?
- OpenCV错误:不支持的格式或格式组合(Point3f类型的点的矢量的矢量)
- OpenCV-浮动数据类型和强度范围在0-255范围内的RGB通道
- Opencv,在编译时确定像素的类型