haclon检测表面凸起

* 关闭所有窗口
dev_close_window ()

* 1. 采集图像
read_image (Image, 'D:/训练照片/6.png')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (3)
dev_set_color ('red')


* 根据具体宽高,优化该图像的傅里叶变换速度(有此函数)
optimize_rft_speed (Width, Height, 'standard')
*修改以下两个值调整滤波器的带宽
Sigma1 := 15.0
Sigma2 := 3.0

* 形成高斯滤波器
gen_gauss_filter (GaussFilter1, Sigma1, Sigma1, 0.0, 'none', 'dc_center', Width, Height)
gen_gauss_filter (GaussFilter2, Sigma2, Sigma2, 0.0, 'none', 'dc_center', Width, Height)
* 第一个滤波器减去第二个滤波器(形成带通滤波器)
sub_image (GaussFilter1, GaussFilter2, Filter, 1, 0)
* 2. 进行频域滤波
rgb1_to_gray (Image, Image)
* 转到频域
fft_generic (Image, ImageFFT, 'to_freq', -1, 'none', 'dc_center', 'complex')
* 滤波
convol_fft (ImageFFT, Filter, ImageConvol)
* 返回空间域(实部)
fft_generic (ImageConvol, ImageFiltered, 'from_freq', 1, 'n', 'dc_center', 'real')


* 3. 空间域上的blob图像分割
* 原图矩形内的灰度值范围(max - min)作为输出图像像素值,扩大了亮的部分
*调整gray_range_rect的最后两个参数,数值小会检测不到
gray_range_rect (ImageFiltered, ImageResult, 20, 20)


* 获得图像最大灰度值和最小灰度值
min_max_gray (ImageResult, ImageResult, 0, Min, Max, Range)
* 二值化提取( 5.55是经验值,在调试中得到)
threshold (ImageResult, RegionDynThresh, max([5.55,Max * 0.8]), 255)
select_shape (RegionDynThresh, SelectedRegions, 'area', 'and', 1, 99999)
connection (SelectedRegions, ConnectedRegions)
* 合并相邻的连通区域,避免一个凸点被分割成多个区域
dilation_circle (ConnectedRegions, DilatedRegions, 5)  // 适当调整膨胀半径
connection (DilatedRegions, MergedRegions)
* 显示原始图像
dev_display (Image)
* 统计连通区域数量
count_obj (MergedRegions, Number)
* 遍历每个连通区域,计算外接圆并绘制
for Index1 := 1 to Number by 1
    select_obj (MergedRegions, ObjectSelected, Index1)
    * 计算连通区域的外接圆参数
    smallest_circle (ObjectSelected, Row, Column, Radius)   
    * 设置绘制颜色
    dev_set_color ('green')  // 你可以选择其他颜色
    * 绘制外接圆
    gen_circle (Circle, Row, Column, Radius)
    dev_display (Circle)
endfor

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值