C ++を学んだばかりで、次のような理由がよくわからないという問題が発生しました。
動作しません
ChildObject in = myObject.getObjFromVector(0);
ChildObject out = myObject.getObjFromVector(1);
doSomething(in.property, out.property); // void doSomething(Thing &in, Thing &out)
where
ChildObject& getObjFromVector(int index)
作品
process(myObject.getObjFromVector(0).property, myObject.getObjFromVector(1).property);
不思議に思うかもしれませんが、私はそれが適切だとは思いませんが、ThingはopencvのMatです。ただし、この質問は、上記が一方の方法で機能するのに、もう一方の方法では機能しない理由についてです。
興味深いことに、オブジェクト全体、またはそのオブジェクトのプロパティをメソッドに渡すと、どちらがよりパフォーマンスが高くなりますか?両方が機能するか、少なくとも許容できることを示唆しています。私は間違いなく何か間違ったことをしていますが、これは私が気付いていないopenCVの何かに起因している可能性があります。
編集:.property値に対して効果的に画像操作を実行しています。お気に入り
process (Mat &src, Mat &out){
...
pyrDown(src, result, Size(src.cols / 2, src.rows / 2));
...
それが機能していないとき、私はpyrDownが有効になるのを見ていません。