halcon算子学习
1.对区域进行交集、补集、反选、合并
1.1对所选区域进行取反
*创建一个窗口
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
*画圆(输出、圆点坐标、半径)
gen_circle (Cricle1, 224.5, 250.5, 131.727)
*清除窗口
dev_clear_window ()
*取反操作
complement (Cricle1, RegionComplement)
1.2 计算区域1相对于区域2不同
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
gen_circle (Cricle1, 122.5, 126.5, 69.7711)
gen_circle (Cricle2, 184.5, 179.5, 73.9256)
*计算Cricle1相对于Cricle2的不同
difference (Cricle1, Cricle2, RegionDifference)
dev_clear_window ()
dev_display (RegionDifference)
1.3计算两个区域的不同
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
gen_circle (Cricle1, 114.5, 127.5, 89.3588)
gen_circle (Cricle2, 163.5, 171.5, 94.8472)
*计算Cricle1和Cricle2的不同
symm_difference(Cricle1, Cricle2 ,RegionDifference)
dev_clear_window ()
dev_display (RegionDifference)
1.4求两个区域的交集
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
gen_circle (Cricle1, 114.5, 127.5, 89.3588)
gen_circle (Cricle2, 163.5, 171.5, 94.8472)
*求两个区域的交集
intersection (Cricle1, Cricle2, RegionIntersection)
dev_clear_window ()
dev_display (RegionIntersection)
1.5对所选区域进行合并
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
*读取图片
read_image (Image, 'fabrik')
*设置颜色,
dev_set_colored (12)
*阈值处理(输入的图片、输出图片、阈值范围)
threshold (Image, Region, 128, 255)
*对所选的区域进行连通
connection (Region, ConnectedRegions)
*对所选的区域进行合并
union1 (ConnectedRegions, RegionUnion)
*对两个区域进行合并
*union2 (Circle1, Circle2, RegionUnion)
dev_clear_window ()
dev_display (Image)
dev_display (RegionUnion)
2.对区域进行填充
read_image (image, 'egypt1')
threshold (image, Region, 0, 140)
*对所选区域进行填充
fill_up (Region, RegionFillUp)
*对所选区域进行选择行填充(输入、输出、特征)
fill_up_shape (RegionFillUp, RegionFillUp1, 'area', 1, 100)
dev_display (image)
dev_display (RegionFillUp)
3.对区域进行筛选
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image, 'fabrik')
threshold (Image, Region, 128, 255)
connection (Region, ConnectedRegions)
*根据面积范围[8000, 9000]进行过滤
dev_display (Image)
*对区域进行筛选(输入、输出、特征)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 8000, 9000)
dev_display (Image)
dev_display (SelectedRegions)
*算子select_shape_std将给定区域的形状与默认形状进行比较。 如果该区域具有相似的形状,则输出为相似的形状.(输入、输出、特征、相似度)
select_shape_std (ConnectedRegions, SelectedRegions1, 'rectangle1', 90)
dev_display (Image)
dev_display (SelectedRegions1)
*算子select_shape_proto 过滤出彼此具有一定关系的区域。