由于在图像处理过程中,我们通常希望 将感兴趣的区域 保存到本地硬盘,以方便程序的调取,所以我们需要知道如何读写区域及轮廓。
1. 读写区域(Region)
* 如何将图像上的一些区域 从硬盘中读取出来 或 写入到硬盘中
* 从硬盘中读取出来
* 将 C:/Users/Administrator/Desktop/halcon-笔记文件夹中的 ReadRegion.hobj 文件中的内容读入到变* 量 Region 中
* 参数1:输出参数; 参数2:输入参数
read_region (Region, 'C:/Users/Administrator/Desktop/halcon-笔记/ReadRegion.hobj')
* 写入到硬盘中
* 将 Region 变量中的内容写入到 C:/Users/Administrator/Desktop/halcon-笔记/WriteRegion.hobj 文件中
* 参数1:输入参数; 参数2:输入参数
write_region (Region, 'C:/Users/Administrator/Desktop/halcon-笔记/WriteRegion.hobj')
从 ReadRegion.hobj 文件中读取到的区域如图 1.1 所示

C:/Users/Administrator/Desktop/halcon-笔记 文件夹中最终会生成 WriteRegion.hobj 文件,如图 1.2 所示

2. 读写轮廓(XLD)
* 如何将图像上的一些轮廓 写入到硬盘中 或 从硬盘中读取出来
* 读取一张名字为 fabrik 的单通道图像(灰度图)
read_image (Image, 'fabrik')
* 功能: 提取亚像素精度的边缘
* 参数1:需提取亚像素轮廓的图像;参数2:返回亚像素精度的XLD轮廓
* 参数3:滤波器的选择;
* 参数4:若使用'canny'滤波器,则 Alpha 参数值越大,滤波器的大小就会变大,从而遗漏了边缘细节部分的处理;其他滤波器则
* 正好相反,滤波器的大小跟 Alpha 值的大小成反比关系; Alpha 值越小,平滑越强大,会减少边缘细节
edges_sub_pix (Image, Edges, 'canny', 0.5, 20, 40)
* 将 xld 轮廓以 dxf 格式写入文件
write_contour_xld_dxf (Edges, 'Coutour.dxf')
* 从 dxf 文件中读取 xld 轮廓
* 参数5: DxfStatus 为读取到的轮廓的数量
read_contour_xld_dxf (Contours, 'Coutour.dxf', [], [], DxfStatus)
图 1.3 所示为读入的图像:

进行 edges_sub_pix() 后的边缘图,如图1.4 所示:

从 dxf 文件中读取到的 xld 轮廓以及轮廓数,如图 1.5 所示,DxfStatus 变量中的个数与图1.4中检测到的轮廓个数一致
