Halcon演算子find_model_shapeをC#で使用すると問題があります。 Halconが示すようにclear_shape_modelを使用していても、この演算子が占有するメモリを解放することはできません。C#でHalconアルゴリズムfind_shape_modelを使用しているときにメモリを解放できません
より複雑な形状探索パラメータを設定すると、find_shape_modelが占めるメモリが大きいようです。
この演算子を使用した後でメモリを解放する方法を知りたいだけです。
private void button1_Click(object sender, EventArgs e)
{
HTuple hv_ModelId = null;
HTuple hv_ModelRow = null;
HTuple hv_ModelColumn = null;
HTuple hv_ModelAngle = null;
HTuple hv_ModelScore = null;
HObject ho_Image = null;
HOperatorSet.GenEmptyObj(out ho_Image);
ho_Image.Dispose();
HOperatorSet.ReadImage(out ho_Image, "0.bmp");
HOperatorSet.SetSystem("border_shape_models", "false");
HOperatorSet.ReadShapeModel("0.shm", out hv_ModelId);
HOperatorSet.FindShapeModel(ho_Image, hv_ModelId, 0,
3.14, 0.75, 0, 0.5, "least_squares", 6, 0.75, out hv_ModelRow,
out hv_ModelColumn, out hv_ModelAngle, out hv_ModelScore);
hv_ModelRow = null;
hv_ModelColumn = null;
hv_ModelAngle = null;
hv_ModelScore = null;
ho_Image.Dispose();
HOperatorSet.ClearShapeModel(hv_ModelId);
hv_ModelId = null;
}
Memory before/after using find_shape_model
私はWindows 10を使用しています。スクリーンショットのグラフは、Visual Studioの診断ツールからのものです。 –
メモリがOSによって管理されている可能性があることに私は同意します。しかし、この場合、halconはこの演算子を実行するときにより多くのメモリが必要になる可能性が高いはずです。私は、同時に複数の画像を処理するために複数のスレッドを使用する別のテストを行い、占有されたメモリが増加しました。私のテストでは、1.1Gが天井かもしれません。だから多分このオペレータはもっと多くのリソースを必要とし、それには限界があります。 –
私のプロジェクトでは、ロバスト性を保証するために大きなメモリを使用する必要があると思います。 –