2016-04-24 8 views
3

Matfloatとしたいとします。次のコードはエラーなしでコンパイルできます。しかし、これは安全ですか?マットを別のタイプのマットに変換するのは安全ですか?

Mat im = imread('test.jpg', CV_LOAD_IMAGE_GRAYSCALE); 
im.convertTo(im, CV_32F1); 

私はそう、私は一時的なMatを作成する必要があり、それはよりコンパクト書かれているので、これをやりたいです。

documentationMat::convertTo()は、この機能のメモリ使用量に関する多くの情報を提供していません。

+0

ドキュメントが不十分な場合は、ソースコードを参照してください。 – Drop

+0

は大丈夫ですが、2番目の画像を使用する方が効率的かもしれません(複数の画像を処理し、常に新しいメモリを割り当て/取り消したくない場合) – Micka

答えて

1

インプレイスコール(つまり、同じ入力および出力Matオブジェクト)を使用する場合、Mat :: convertTo関数を安全に使用する必要があります。

According to OpenCV DevZoneこの関数は、インプレイスコールを使用するとバグがありましたが、数年前に修正されました。

関連する問題