[Halcon&图像] 图像、区域和轮廓相互转化
一、区域(region)转轮廓(xld):
法一: 直接转换
gen_contour_region_xld (SelectedRegions, Contours, 'border')
应该场所:拟合部分边缘提取和轮廓分割之间会用到,因为轮廓分割需输入xld轮廓,而用boundary提取区域边缘输出的是区域(region),所以需要转换。
法二: 先将区域转换骨架,在提取骨架xld轮廓
skeleton (Region2, Skeleton2)
gen_contours_skeleton_xld (Skeleton2, Contours, 1, 'filter')
应该场所:一般需要将直线或其他线条由区域region类型转换成更高精度的轮廓xld类型时,可以用到。
二、轮廓(xld)转区域(region):
gen_region_contour_xld (SelectedXLD, RegionXLD, 'filled')
三、轮廓(xld)或区域(region)转换成图像(image):
法一: paint_region贴图的方式
*UnionContours1为输入的xld轮廓
sort_contours_xld (UnionContours1, SortedContours, 'upper_left', 'true', 'column')
count_obj (UnionContours1, Number)
*将轮廓转换成区域
gen_empty_obj (Line)
for i := 1 to Number by 1
select_obj (SortedContours, ObjectSelected, i)
get_contour_xld (ObjectSelected, Row, Col)
gen_region_polygon (Region, Row, Col)
concat_obj (Line, Region, Line)
endfor
*创建空白图像,将得到的区域贴到上面
get_image_size (ImageReduced, Width1, Height1)
gen_image_proto (ImageReduced, ImageCleared, 128)
paint_region (Line, ImageCleared, ImageResult1, 255, 'fill')
注:前面两步是将断开的轮廓转换成完整区域,然后将得到的区域之间贴到空白图像上,实现将轮廓转换成图像。
法二: region_to_bin — 将一个区域转换为二进制字节图像
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律