画像に色づけや文字、ラインなどを書き込むための関数であるOverlayを使用していると、メモリリークが起こるように見えます



使用ソフトウェア:
使用ソフトウェア・バージョン: 7.0
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア:

問題: 画像に色づけや文字、ラインなどを書き込むための関数であるOverlayをループの中で使用していると、メモリの使用量が時間とともに比例して増加していくのですが、メモリリークが起こってしまっているのでしょうか。

解決策: このOverlayと共に起こっているメモリの増加は、メモリリークではありません。Overlay関数を使用すると、毎回同バッファ内に、画像に必要な分のメモリを確保します。さらに、この関数をループ内で使用した際には、毎回ループが回るたびに、メモリ新たに確保していくため、結果としてメモリリークと同じような、現象が起きてしまいます。下記のいくつかの関数は、使用した際新たにメモリを確保する関数になります。


IMAQ Copy Overlay
IMAQ Overlay Arc
IMAQ Overlay Closed Contour
IMAQ Overlay Line
IMAQ Overlay Metafile
IMAQ Overlay Open Contour
IMAQ Overlay Oval
IMAQ Overlay Points
IMAQ Overlay Rect
IMAQ Overlay ROI
IMAQ Overlay Text


これらの関数を使用する際には、Disposalの関数を使用することにより、必要のない画像に使用されているメモリ領域を開放し、メモリの使用量を制御する必要があります。メモリ領域の開放には、IMAQ Clear Overlayの関数を使用することが出来ます。
また、IMAQ Dispose を使用すると、イメージに関するすべてのリソース(Overlay, RIO, Arrays, Reports, Image)を開放することができます。

関連リンク: National Instruments Image Acquisition and Vision Support Homepage

添付:





報告日時: 03/08/2004
最終更新日: 06/11/2009
ドキュメントID: 377GDS45