nbu*_*bis 5 c++ templates opencv
在OpenCV中,访问Mat对象中的像素是很常见的,如下所示:
float b = A.at<float>(4,5);
Run Code Online (Sandbox Code Playgroud)
问题是,如果你不知道apriori的数据类型,你就会陷入困境.有没有办法编写接受Mat模板类型的通用函数头T?我想构建线性代数计算的函数,我不希望有一个if子句分离double和float.就像是:
void func(Mat <T> a) {
a.at<T>(3,4) = ...
Run Code Online (Sandbox Code Playgroud)
这在OpenCV中是否可行?
只需对您的函数进行模板化即可实现这一点:
template<typename T>
void func(Mat a) {
a.at<T>(3,4) = ...
Run Code Online (Sandbox Code Playgroud)
但请注意,您没有简单的方法将类型 T 限制为 double 或 float,并且您的算法可能不适用于其他类型,但这可能不是一个实际问题。
还要注意使用模板的缺点:使用模板的缺点是什么?
| 归档时间: |
|
| 查看次数: |
1269 次 |
| 最近记录: |