Q
volatileの設定を有効にすると処理が早くなるとの事ですが、具体的には何が違うのでしょうか。
A
volatileはダブルバッファモード、ボラタイルグラビング、不揮発性モードなどとも言います。通常、画像を確保するためのバッファとして、画像サイズで画像入力ボードが2つ、HALCONが2つ用意します。
つまりメモリ上には画像サイズ×4のメモリ空間が使用されます。ボードからの画像データはまずボードバッファに転送されます。非同期取り込みを行う場合には交互にボードバッファに転送されます。その後にHALCONバッファに転送されます。set_framegrabber_param (FGHandle, 'volatile', 'enable') を設定するとHALCONバッファが確保されません。HALCONは直接ボードバッファの画像を参照します。この場合、メモリ消費が少なく画像コピーがないために高速です。
ただし次の画像がボードからきた場合は上書きされます。grab_image_asyncでは画像が更新されてしまいますので、grab_image_asyncで取り込む場合は disable としてください。