OpenCV 实际上支持与重载的标量值相乘operator*
。不过,您可能需要正确初始化矩阵。
float data[] = {1 ,2, 3,
4, 5, 6,
7, 8, 9};
cv::Mat m(3, 3, CV_32FC1, data);
m = 3*m; // This works just fine
如果您主要对数学运算感兴趣,cv::Matx
更容易使用:
cv::Matx33f mx(1,2,3,
4,5,6,
7,8,9);
mx *= 4; // This works too