-1
在OpenCV的类cv::Mat
的定义中,我找到了运算符()
和=
的定义。我认为OpenCV如MATLAB那样为矩阵重载运算符+-*/
等是很好的。为什么OpenCV不会为矩阵重载运算符+-*/
?这些在计划中吗?或者,这不是一个好主意吗?为什么OpenCV没有为cv类重载运算符*/+ Mat
在OpenCV的类cv::Mat
的定义中,我找到了运算符()
和=
的定义。我认为OpenCV如MATLAB那样为矩阵重载运算符+-*/
等是很好的。为什么OpenCV不会为矩阵重载运算符+-*/
?这些在计划中吗?或者,这不是一个好主意吗?为什么OpenCV没有为cv类重载运算符*/+ Mat
矩阵操作在cxmat.hpp
中定义。我不知道它有什么优势,这样做,但我想他们有他们的理由。
对不起,但...
是的,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;
}
谢谢。我在OpenCV 2.1中找到了'cxmat.hpp',它定义了运算符'* -/+'。但是我也发现没有来自2.2的cxmat.hpp,而不是具有这些定义的'mat.hpp'。 –
这个答案已经过时。 – Antonio