bea*_*ver 3 opencv const reference mat
在以下功能
foo(const Mat& img)
Run Code Online (Sandbox Code Playgroud)
img可以在函数中更改它,而无需编译器发出警告。为什么?这是否意味着const Mat参考没有任何意义?
这是因为Mat包含指向实际图像数据的指针。const仅适用于Mat对象本身(例如,行,cols等属性),不适用于指针所引用的数据。注意:即使该功能是
foo(Mat img)
Run Code Online (Sandbox Code Playgroud)
您仍然可以更改图像数据。
将Mat作为const引用传递有许多优点。它告诉程序员一些有关如何使用foo()以及如何修改foo()的知识。此外,它还会阻止您执行以下操作:
void foo(const cv::Mat& img)
{
img.create(5, 6, CV_8UC3);
}
Run Code Online (Sandbox Code Playgroud)
这将得到一个编译器错误。
| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |