图像处理函数与形态学操作笔记(含 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 中图像分析的基础工具,通过组合使用可实现目标检测、缺陷识别、特征测量等复杂任务。

相关推荐
吻等离子9 小时前
机器学习基本概念篇(含思维导图)
人工智能·机器学习
乐维_lwops9 小时前
智变2026:中国IT运维管理软件行业全景洞察——从AI重塑到信创深水区
运维·人工智能
Hui_AI7209 小时前
基于RAG的农产品GEO溯源智能问答系统实现
开发语言·网络·人工智能·python·算法·创业创新
Java后端的Ai之路9 小时前
什么是“多模态微调”?
人工智能·lora·微调
沫儿笙9 小时前
机器人焊接混合气智能节气装置
人工智能·机器人
愚昧之山绝望之谷开悟之坡9 小时前
什么agentskill.io大白话说清楚
笔记
imbackneverdie9 小时前
AI生成论文插图速度快不用手搓,但是怎么变成矢量图?
图像处理·人工智能·ai作画·aigc·科研绘图·ai工具·ai生图
甲维斯9 小时前
GLM5.1 降智了?国模思考强度研究!
人工智能·ai编程
中微子9 小时前
突然爆火的Warp 终端,开源1天破 4w Stars
linux·人工智能·开源
Restart-AHTCM9 小时前
AI 时代的大前端崛起,TypeScript 重塑前端开发
前端·人工智能·typescript·ai编程·a