OpenCV常量矩阵-不总是常量?
我有以下代码opencv 3.4.1:OpenCV常量矩阵-不总是常量?,opencv,Opencv,我有以下代码opencv 3.4.1: void addText(const cv::Mat& mat) { cv::putText(mat, "test", cv::Point2f(100, 100), cv::FONT_HERSHEY_PLAIN, 2, cv::Scalar(0, 0, 255, 255)); } 我原以为编译器会拒绝它,但令我惊讶的是,它在没有任何警告的情况下编译,我认为将它定义为const就足以防止对mat进行任何更改 防止错误更改cv::Mat内容的最
void addText(const cv::Mat& mat)
{
cv::putText(mat, "test", cv::Point2f(100, 100), cv::FONT_HERSHEY_PLAIN, 2, cv::Scalar(0, 0, 255, 255));
}
我原以为编译器会拒绝它,但令我惊讶的是,它在没有任何警告的情况下编译,我认为将它定义为const就足以防止对mat进行任何更改
防止错误更改cv::Mat内容的最佳做法是什么?请参阅。然后键入def
现在的情况是,InputOutputArray被定义为与OutputArray相同,而OutputArray具有非显式的
正因为如此,您的Mat Constance实际上被吞没了。
如果你真的关心const的正确性,不要直接使用Mat,用一个合适的const-correct代理/装饰器包装它们和你调用的OpenCV方法