天天看点

HObject 转HRegion 、HXLDCont

c# 与halcon在混合编程时,经常会遇到HObject 和HImage,HRegion 、HXLDCont 之间的变换问题,所以做个总结,便于以后使用:

一、HObject 转 HImage

HTuple pointer, type, width, height;

HObject ho_Image, ho_Domain;

HObject ho_RegionBorder, ho_Contours;

HImage image = new HImage();

HOperatorSet.ReadImage(out ho_Image, “printer_chip/printer_chip_01”);

//灰度图转换

HOperatorSet.GetImagePointer1(ho_Image, out pointer, out type, out width, out height);

image.GenImage1(type, width, height, pointer);

//彩色图转换

HOperatorSet.GetImagePointer3(ho_Image, out pointerRed, out pointerGreen, out pointerBlue, out type, out width, out height);

image.GenImage3(type, width, height, pointerRed, pointerGreen, pointerBlue);

二、HObject 转 HRegion

HOperatorSet.GetDomain(ho_Image, out ho_Domain);

HOperatorSet.GetRegionPolygon(ho_Domain, 5, out hv_Rows, out hv_Columns);

HRegion Region= new HRegion();

Region.GenRegionPolygonFilled(hv_Rows, hv_Columns);

三、HObject 转 HXLDCont

HOperatorSet.Boundary(ho_Region, out ho_RegionBorder, “inner”)

HOperatorSet.GenContourRegionXld(ho_RegionBorder, out ho_Contours, “border”);

HOperatorSet.GetContourXld(ho_Contours, out hv_Row, out hv_Col);

HXLDCont Contour = new HXLDCont();

Contour.GenContourPolygonXld(hv_Row, hv_Col);

继续阅读