在 OpenCV 中,访问一个像素是很常见的。Mat
像这样的对象:
float b = A.at<float>(4,5);
问题是,如果您不知道先验数据的类型,那么您就会陷入困境。有没有一种方法可以编写接受a的通用函数头Mat
与模板类型T
?我想构建线性代数计算的函数,并且我不想有一个if
分句分隔double
and float
。就像是:
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;
}
如果你想通过Mat
to func
,您必须指定类型:
Mat a;
func(Mat_<float>(a));
如果您使用与原始类型不同的类型Mat
类型,OpenCV 将为您执行转换。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)