gpt4 book ai didi

c++ - Opencv 通用 Mat 函数头文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:15 27 4
gpt4 key购买 nike

在 OpenCV 中,访问 Mat 对象中的像素很常见,如下所示:

float b = A.at<float>(4,5);

问题是,如果您不知道先验数据的类型,就会陷入困境。有没有一种方法可以编写接受模板类型为 TMat 的通用函数头文件?我想构建用于线性代数计算的函数,我不想用 if 子句分隔 doublefloat。像这样的东西:

 void func(Mat <T> a) { 
a.at<T>(3,4) = ...

这在 OpenCV 中可行吗?

最佳答案

看起来另一种方法是使用 Mat_ 对象而不是 Mat:

template<typename T>
void func(Mat_ <T> a) {
cout << a(0,0) << endl;
}

如果你想传递一个Matfunc,你必须指定类型:

Mat a;
func(Mat_<float>(a));

如果您使用与原始 Mat 类型不同的类型,OpenCV 将为您执行转换。

关于c++ - Opencv 通用 Mat 函数头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15965957/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com