gpt4 book ai didi

c# - C#中使用Halcon算法find_shape_model无法释放内存

转载 作者:行者123 更新时间:2023-11-30 21:37:46 25 4
gpt4 key购买 nike

在 C# 中使用 Halcon 运算符 find_model_shape 时出现问题。这个操作符占用的内存即使像Halcon说的那样使用clear_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

最佳答案

看起来您正在使用以下函数正确清除形状模型:

HOperatorSet.ClearShapeModel(hv_ModelId);

你确定内存没有释放?如果在清除内存后再次读取相同的形状模型会怎样?

HOperatorSet.ReadShapeModel("0.shm", out hv_ModelId);

我敢打赌内存不会受到影响。基本上,内存的管理方式也取决于您的操作系统。您的操作系统可能不会立即将内存提供给其他进程,因为它希望内存可以再次使用。

出于好奇:您使用的是哪个操作系统以及如何在屏幕截图中生成图表?

关于c# - C#中使用Halcon算法find_shape_model无法释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46901194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com