OpenCV乘以标量和矩阵

1 math scalar opencv matrix operation

我试图找到最简单的添加方法,用opencv 2.0 cv::Mat类减去标量值.

大多数现有函数仅允许矩阵 - 矩阵和矩阵 - 标量运算.

我正在寻找一个标量矩阵运算.

我目前正在通过创建具有相同标量值的临时矩阵并执行所需的算术运算来完成它.下面..实例 cv::Mat确实是基于场副本场cv::Mat课,我会说,我不会需要显式的复制场cv::Matcv::Mat,是上面显示的代码将是绰绰有余做出的克隆cv::Mat类.也就是说,以下代码是多余的:

Mat M(Size(100,100), CV_8U);
Mat temp = Mat::ones(100, 100, CV_8U)*255; 
M = temp-M;
Run Code Online (Sandbox Code Playgroud)

我对吗?

我知道克隆对象的引用会自动指向原始对象的引用指向的位置,我只是不确定具体的值类型会发生什么.如果有人能够清楚地说明什么cv::Mat是算法规范(用简单的语言)那就太好了.

Mar*_*tin 5

您无法从int或double初始化Mat表达式.解决方案是使用cv :: Scalar,即使对于单通道矩阵:

Mat M = Mat::ones(Size(100, 100), CV_8U);
M = Scalar::all(255) - M;
Run Code Online (Sandbox Code Playgroud)

有关可能的Mat表达式列表,请参见http://docs.opencv.org/modules/core/doc/basic_structures.html#matrixexpressions.