在OpenCV的类cv::Mat
的定义中,我找到了运算符()
和=
的定义。我认为如果OpenCV像MATLAB一样重载矩阵的运算符+-*/
等,那就太好了。为什么OpenCV不会为矩阵重载运算符+-*/
?这些是按计划进行的吗?或者,这不是一个好主意吗?
答案 0 :(得分:4)
我很抱歉,但是......
是的,OpenCV会重载所有这些运算符。试试吧!
int main( int argc, char** argv )
{
Mat m1 = Mat::zeros(2, 2, CV_32FC1);
Mat m2 = Mat::ones(2, 2, CV_32FC1);
m1.at<float>(0, 0) = 2.0f;
cout << (m2*2) << endl;
cout << m1*m2 << endl;
cout << m1+m2 << endl;
cout << m1-m2 << endl;
}
答案 1 :(得分:2)
矩阵运算在cxmat.hpp
中定义。我不知道它有什么优势,这样做,但我猜他们有他们的理由。