今更ながらOpenCV3について備忘録。
インスタンス
基本的にMatがNullの場合、OpenCVではインスタンスの作成はしてくれない。
必ずインスタンスは生成しておく。
逆にインスタンスさえ存在していれば自動でアロケートしなおしてくれる。
clone
相手が同サイズ、同ステップだったらコピーかなと思ったら新しくインスタンスが作成される。
相手がNullの場合例外発生。
copyTo
サイズ、ステップが違っていてもインスタンスが存在すればメモリアロケーションしなおす。
サイズ、ステップが変わると当然メモリアロケーションも変わる。
相手がNullの場合例外発生。
imread
cloneと同じくインスタンスが作り直されるので、メモリアロケーションを崩されたくないなら一度受け取ってからcopyTo。
相手がNullの場合例外発生。
よってうちのようにメモリを使いまわす場合は基本cloneは使わずcopyToを使用する。
いや・・・、勘違いしててはまったわ orz