图像处理函数与形态学操作笔记(含 Halcon 示例)

一、区域筛选与特征提取函数

1. 区域筛选函数

  • select_shape()

    功能:根据区域的形状特征(如面积、圆形度、凸度、长宽比等)筛选符合条件的区域。

    Halcon 示例:

    复制代码
    read_image (Image, 'pcb.jpg')  // 读取电路板图像
    threshold (Image, Regions, 100, 200)  // 二值化得到初始区域
    connection (Regions, ConnectedRegions)  // 分割为独立区域
    // 筛选出面积在50-500之间、圆形度>0.7的区域(如合格焊点)
    select_shape (ConnectedRegions, SelectedRegions, ['area','circularity'], 'and', [50,0.7], [500,1.0])
  • select_gray()

    功能:根据区域内的灰度值范围筛选区域(如平均灰度、最大 / 最小灰度等)。

    Halcon 示例:

    复制代码
    read_image (Image, 'medical.png')  // 读取医学影像
    threshold (Image, Regions, 50, 255)  // 初步分割区域
    connection (Regions, ConnectedRegions)
    // 筛选出平均灰度>180的区域(如高密度钙化区域)
    select_gray (ConnectedRegions, Image, SelectedRegions, 'mean', 'and', 180, 255)

2. 几何特征提取函数

  • smallest_rectangle2()

    功能:计算区域的最小外接矩形(支持旋转,返回中心坐标、宽、高、旋转角度)。

    Halcon 示例:

    复制代码
    read_image (Image, 'tilted_part.jpg')  // 读取倾斜零件图像
    threshold (Image, Region, 128, 255)
    // 计算最小外接矩形参数(Row中心、Col中心、Phi角度、Length1半宽、Length2半高)
    smallest_rectangle2 (Region, Row, Column, Phi, Length1, Length2)
    // 绘制外接矩形
    gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
    dev_display (Image)
    dev_display (Rectangle)
  • area_center_gray()

    功能:计算区域的面积(像素数)和灰度中心(灰度加权的几何中心)。

    Halcon 示例:

    复制代码
    read_image (Image, 'cells.png')  // 读取细胞图像
    threshold (Image, Cells, 80, 200)
    connection (Cells, SingleCells)
    // 计算每个细胞区域的面积和灰度中心
    area_center_gray (SingleCells, Image, Area, RowGray, ColGray)
    // 打印结果(如第1个细胞的面积和中心)
    tuple_get (Area, 0, CellArea)
    tuple_get (RowGray, 0, CellRow)
    tuple_get (ColGray, 0, CellCol)

3. 灰度特征提取函数

函数名 功能 Halcon 示例
gray_feature() 提取区域中最小灰度值 hdevelop<br>gray_feature (Region, Image, 'min', MinGray) // MinGray为最小灰度值
gray_features 提取区域中最大灰度值 hdevelop<br>gray_features (Region, Image, 'max', MaxGray) // MaxGray为最大灰度值
min_max_gray() 同时提取最大与最小灰度值 hdevelop<br>min_max_gray (Region, Image, 0, Min, Max, Range) // Range=Max-Min
intensity() 提取灰度平均值与偏差 hdevelop<br>intensity (Region, Image, Mean, Deviation) // Mean平均值,Deviation偏差

二、形态学操作(Halcon 实现)

核心特性

  • 适用对象:二值图像(gen_*函数)或灰度图像(gray_*函数)

  • 作用:提取形状特征、去噪、分离物体、填充孔洞等

1. 顶帽操作(gray_tophat)

  • 计算公式:

    原始图像 - 开运算结果 = 顶帽图像

    (开运算:先腐蚀后膨胀,去除小的亮区域)

  • 功能:突出图像中 "小的、亮的区域"(如暗背景中的小亮斑)。

  • Halcon 示例:

    复制代码
    read_image (Image, 'starry_sky.jpg')  // 暗背景星空图像
    // 定义结构元素(圆形,半径5)
    gen_circle (SE, 10, 10, 5)
    // 灰度顶帽操作,提取小亮点(星星)
    gray_tophat (Image, SE, Tophat)
    dev_display (Tophat)  // 显示提取的亮斑

2. 低帽操作(gray_bothat)

  • 计算公式:

    闭运算结果 - 原始图像 = 低帽图像

    (闭运算:先膨胀后腐蚀,填充小的暗区域)

  • 功能:突出图像中 "小的、暗的区域"(如亮背景中的小暗点)。

  • Halcon 示例:

    复制代码
    read_image (Image, 'white_paper.jpg')  // 白纸含小黑点图像
    gen_circle (SE, 10, 10, 3)  // 小结构元素
    // 灰度低帽操作,提取小黑点杂质
    gray_bothat (Image, SE, Bothat)
    dev_display (Bothat)  // 显示提取的暗点

以上函数和操作是 Halcon 中图像分析的基础工具,通过组合使用可实现目标检测、缺陷识别、特征测量等复杂任务。

相关推荐
紧固件研究社几秒前
2026第十六届上海紧固件专业展|洞察紧固件升级新方向
大数据·人工智能·制造·紧固件·上海紧固件展·上海紧固件专业展
2301_76444133几秒前
基于Genos模型的基因序列分析应用
人工智能·python
日更嵌入式的打工仔3 分钟前
TFTP(简单文件传输协议)
笔记
花间相见5 分钟前
【AI开发】—— OpenCode双插件协同开发指南
人工智能
2501_941652778 分钟前
基于DETR模型的棉花品种识别与分类检测研究_r50_8xb2-150e_coco数据集训练
人工智能·数据挖掘
Elastic 中国社区官方博客15 分钟前
金融服务公司如何大规模构建上下文智能
大数据·人工智能·elasticsearch·搜索引擎·ai·金融·全文检索
觉醒大王16 分钟前
科研新手如何读文献?从“乱读”到“会读”
论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
无人装备硬件开发爱好者22 分钟前
RV1126B 边缘端 AI 实战:YOLOv8+DNTR 微小目标跟踪监测全栈实现 1
人工智能·yolo·目标跟踪
新缸中之脑25 分钟前
为AI代理设计分层记忆
人工智能
爱吃泡芙的小白白25 分钟前
机器学习输入层:从基础到前沿,解锁模型性能第一关
人工智能·机器学习