blob分析、自动阈值
Blob分析是一种在图像处理中用于识别和分析图像中对象的方法。它通过将图像进行二值化,分割得到前景和背景,然后进行连通区域检测,从而得到Blob块。Blob分析可以计算目标的数量、位置、形状、方向和大小,还可以提供相关斑点间的拓扑结构。
read_image (Image, 'particle.png')
* 如何在一张图像上 提取多个区域
* 使用多个threshold算子
threshold (Image, Region, 100, 255)
connection (Region, ConnectedRegions)
*最终效果如下图1:area_center (ConnectedRegions, Area, Row, Column)
* 获取区域集合中的对象的 面积值 和中心点的坐标
*参数1: 输入的区域对象的集合
*参数2: 所有的区域的面积
*参数3参数4: 集合中区域的行坐标和列坐标*最终效果如下图2:



自动阈值分割
自动阈值分割原理: 主要使用在自动分割多阈值的情况下。
- 计算图像灰度直方图
- 高斯函数平滑直方图
- 在平滑后直方图当中寻找波谷作为阈值
- 使用找到阈值对图像进行多级阈值分割
read_image (Image, 'egypt1')
sigma:=4
auto_threshold (Image, Regions, sigma)
*sigma高斯平滑值
* 最终效果如下图3:
建议sigma:
- 高对比度图像 使用较小值(3-5) 保留了更多细节 产生更多阈值
- 低对比度图像 使用较大值(6-10)平滑效果更强,产生阈值就少


绘制输入图像的灰度直方图
gray_histo (Image, Image, AbsoluteHisto, RelativeHisto)
*AbsoluteHisto 绝对分布 0-255灰度值个数
*RelativeHisto 相对分布 0-255灰度值 比例
最终结果如下图4:dev_clear_window ()*对绝对分布进行平滑操作
*把绝对分布生成一个一唯函数
create_funct_1d_array (AbsoluteHisto, Function)*对函数进行高斯平滑
smooth_funct_1d_gauss (Function, sigma, SmoothedFunction)
*最终结果如下图4:*把SmoothedFunction转成点的形式
*XValues x值 灰度值
*YValues y值 某个灰度值高斯平滑之后值
funct_1d_to_pairs (SmoothedFunction, XValues, YValues)
*YValues 生成一个直方图
gen_region_histo (Region, YValues, 255, 255, 1)
*最终结果如下图5:

