Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV常量矩阵-不总是常量?_Opencv - Fatal编程技术网

OpenCV常量矩阵-不总是常量?

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内容的最

我有以下代码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内容的最佳做法是什么?

请参阅。然后键入def

现在的情况是,InputOutputArray被定义为与OutputArray相同,而OutputArray具有非显式的

正因为如此,您的Mat Constance实际上被吞没了。 如果你真的关心const的正确性,不要直接使用Mat,用一个合适的const-correct代理/装饰器包装它们和你调用的OpenCV方法