Halcon图像释放和判断是否为空的问题

Halcon中Hobject 格式的图像可以采用两种方式释放资源。
1)C#环境
1.1,Hobject.Dispose();这种方法会释放掉图像占用的内存资源,是我们最常用的释放方式。
1.2,ho_Image1 = null,这种情况只是把图像置空,并没有释放掉图像占用的资源。不过如果这是个全局变量,后面继续用 这个图像变量,实现自动覆盖也不会造成内存持续增长,否则内存会持续增长。后面判断图像释放可以用if(ho_Image1 == null){"释放成功”}。
2)C++环境
2.1 C++编程环境下没有Hobject.Dispose();需要调用Hobject.Clear();C++调用Hobject.Clear()后,后面可以跟
if (!ho_Image1.IsInitialized()){“释放成功”},判断是否释放成功。假如释放成功,则ho_Image1.IsInitialized()会返回false,没有释放则返回true;
2.2 C++环境下,判断图像是否为空的方法如下

    HObject  ho_EmptyObject;
	HTuple  hv_IsEqual;
	GenEmptyObj(&ho_EmptyObject);
	TestEqualObj(ho_EmptyObject, ho_Image, &hv_IsEqual);
	if ((!ho_Image.IsInitialized()) || (hv_IsEqual == 1))
	{
		//图像为空,或者图像被clear
		return 1;
	}

你可能感兴趣的:(图像处理,c++)