2
openCVの初心者です。私はMatデータタイプがポインタの開始を必要としないのはなぜだろうと思っています。あなたは(あなたが好きな場合は、ヘッダ)int a
がintのためのスペースを割り当てて最初は全く同じ方法でマットオブジェクトのためのスペースを割り当てMatタイプをポインタにする必要がないのはなぜですか?
Mat image
代わりの
Mat* image
openCVの初心者です。私はMatデータタイプがポインタの開始を必要としないのはなぜだろうと思っています。あなたは(あなたが好きな場合は、ヘッダ)int a
がintのためのスペースを割り当てて最初は全く同じ方法でマットオブジェクトのためのスペースを割り当てMatタイプをポインタにする必要がないのはなぜですか?
Mat image
代わりの
Mat* image
を使用することができます。
データのサイズとタイプを指定したり、イメージをロードすると、実際のデータ用にメモリが割り当てられます。
これは実際には初心者のCまたはC++のプログラミングに関する質問ですが、openCVとは関係ありません。 Mat img
とMat * img = new(Mat(...)) `はどちらもMat自体のためのスペース(ヘッダのみ)を作成します。いずれの場合も、データのサイズを指定することができ、Matは内部的に画像データのメモリを割り当てます。これはあなたには見えず、マットの保管方法とは関係ありません。
理論的には、私はMat * imgを作り、後で* img = Mat(param、param、param、param)を作ることができましたか? – lluisrojass
いいえ - あなたがC++であると仮定して 'Mat * img = new(Mat(rows、cols、type))'を実行することができます。 –
本当に説明から恩恵を受ける価値がないなら、データを割り当てるときにポインタを指定するだけですか?それは理にかなっている。しかし、なぜそれが 'Mat img(rows、cols、type)'にポインタが必要ないのでしょうか? – lluisrojass