Halcon 霍夫变换
霍夫变换:通过霍夫变换查找图片当中的几何图形。例如查找,圆,椭圆等
结果:
②获取图片③获取图片宽高
④打开窗口:
裁剪一个矩形
rectangle1_domain (Image, ImageReduced, 20, 50, 450, 850)
参数3 参数4 裁剪的起始点坐标
参数5 参数6 裁剪的结束点做包
提取边缘算子
sobel_amp (ImageReduced, EdgeAmplitude, 'sum_abs', 3)
参数1 输入图像
参数2 输入图像
参数3 滤波器的形式
'sum_abs': 计算水平卷积和加上竖直方向的卷积和 计算速度快,适用于绝大部分情况
'sum_sqrt' 计算方式 水平和竖直卷集和在开平方 计算速度慢。更接近理想程度、
x 计算方式 仅处理水平方向的卷积
参数4 滤波器尺寸 3 相当于3*3矩阵,必须是奇数矩阵
结果:
设置输出颜色红色
dev_set_color('red')
图像分割的操作,根据最小值和最大值提取范围内的区域
EdgeAmplitude 输入图像
Region 分割之后的图像
threshold (EdgeAmplitude, Region, 128, 255)
筛选形状
select_shape (ConnectedRegions, SelectedRegions, ['area','contlength'],'and', [2500,1260], [99999,2400])
参数3 筛选的条件,如果写多个筛选条件['area(面积)','contlength(周长)']
参数4 and 并且,or或者
参数5[2500,100]面积最小值2500 周长最小值宿舍100
参数6[99999,999]面积最大值99999, 周长最大值是999
通过霍夫变换找直线
hough_lines(SelectedRegions, 4, 50, 5, 5, Angle, Dist)
参数1 输入的图像
参数2 角度迭代 每隔4度采样一次,值越小 检测越精确,耗时越长,建议1-10
参数3 要寻找的直线阈值 值越大 线越少
参数4 定义Hough图像中的点的邻域范围,从而确定局部最大值。
参数5 DistGap:定义Hough图像中的点的邻域范围,从而确定局部最大值。
参数6 输出值 检测到线的法向量的绝对,与x轴角度
参数7 直线与远点的距离
设置输出颜色红色
dev_set_color('blue')
绘制霍夫直线
gen_region_hline (Regions, Angle, Dist)
结果:
select_shape (Regions, SelectedRegions1, ['orientation','column'], 'and', [1.4,200],[1.6,400])
select_shape (Regions, SelectedRegions2, ['orientation','row'], 'and', [0,100], [0.1,200])
清楚
dev_clear_window ()
dev_display (Image)
dev_display (SelectedRegions1)
dev_display (SelectedRegions2)