今更ながらOpenCV3について備忘録。

インスタンス
基本的にMatがNullの場合、OpenCVではインスタンスの作成はしてくれない。
必ずインスタンスは生成しておく。
逆にインスタンスさえ存在していれば自動でアロケートしなおしてくれる。

clone
相手が同サイズ、同ステップだったらコピーかなと思ったら新しくインスタンスが作成される。
相手がNullの場合例外発生。

copyTo
サイズ、ステップが違っていてもインスタンスが存在すればメモリアロケーションしなおす。
サイズ、ステップが変わると当然メモリアロケーションも変わる。
相手がNullの場合例外発生。

imread
cloneと同じくインスタンスが作り直されるので、メモリアロケーションを崩されたくないなら一度受け取ってからcopyTo。
相手がNullの場合例外発生。

よってうちのようにメモリを使いまわす場合は基本cloneは使わずcopyToを使用する。

いや・・・、勘違いしててはまったわ orz