OpenCVのクラスcv::Mat
の定義では、演算子()
と=
の定義が見つかりました。私はOpenCVがMATLABのような行列のためにオペレータ+-*/
などをオーバーロードすると良いと思います。なぜOpenCVはオペレータ+-*/
を行列にオーバーロードしないのですか?これらは予定通りですか?それともいいアイデアではないですか?OpenCVがcv :: Matクラスのオーバーロード演算子を無効にする理由
-1
A
答えて
2
マトリックス操作はcxmat.hpp
で定義されています。私はそれがどのような利点を持っているのか、このようにするのか分かりませんが、彼らには理由があると思います。
3
ごめんなさいけど...
はい、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. クラス演算子*オーバーロード
- 3. クラスの=演算子のオーバーロード
- 4. C#のオーバーロード演算子==クラス
- 5. 演算子のオーバーロード演算
- 6. クラスオブジェクトを処理するオーバーロード演算子?
- 7. 演算子オーバーロード==
- 8. オーバーロード演算子+
- 9. C++オーバーロード:[] []演算子のオーバーロード
- 10. enumクラスのキャスト演算子のオーバーロード
- 11. ネームスペース内のクラス外の演算子オーバーロード
- 12. C++クラスの演算子+のオーバーロード。
- 13. 非クラス型のオーバーロード演算子[]
- 14. enumクラスのリレーショナル演算子オーバーロード
- 15. テンプレート型クラスのリレーショナル演算子オーバーロード(C++)
- 16. 問題の理解演算子のオーバーロード
- 17. 演算子のオーバーロード
- 18. 演算子のオーバーロード*
- 19. C++演算子+演算子+ =オーバーロード
- 20. C++:演算子オーバーロード、演算子+
- 21. 演算子がクラスタイプに無効です
- 22. OpenCV CV :: MatとEigen :: Matrix
- 23. C++ライブラリのクラスのオーバーロード代入演算子
- 24. C#抽象クラス演算子オーバーロード
- 25. C++クラス演算子オーバーロード参照
- 26. オーバーロード=演算子Python
- 27. C++オーバーロード演算子++
- 28. 演算子オーバーロード+ BinaryTree
- 29. セグメンテーションフォールト&オーバーロード演算子
- 30. オーバーロード演算子 `[]`と ':'
ありがとうございました。私はOpenCV 2.1で 'cxmat.hpp'を見つけたので、演算子' * -/+ 'の定義があります。しかし、私はまた、 'mat.hpp'の代わりに2.2からのcxmat.hppが存在しないことも発見しました。 –
この回答は古くなりました。 – Antonio