自己学习使用,如有需要的朋友,可以学习一下,大神勿喷
1.本文仅针对灰度图像腐蚀,不针对区域腐蚀
2.本文研究所使用结构元素内部数据为某一定值
先上结论
一.自定义33结构元素,结构元素数据全为0,对灰度图像腐蚀结果为使用结构元素便利,结构元素区域内最小灰度值
二.使用默认33结构元素对灰度图像腐蚀,结果同1,说明默认结构元素数据全为0
三.自定义33结构元素,结构元素数据全为1,对灰度图像腐蚀结果为使用结构元素便利,结构元素区域内最小灰度值-1,即1的结果-1
四.自定义33结构元素,结构元素数据全为80,对灰度图像腐蚀结果为使用结构元素便利,结构元素区域内最小灰度值-80,即1的结果-80
五.自定义3*3结构元素,结构元素数据全为255,对灰度图像腐蚀结果为使用结构元素便利,结构元素区域内最小灰度值-255,即1的结果-255,所以结果全为0
六.由以上得出,灰度图像腐蚀后总体灰度值降低,所以腐蚀结果图像会比原图偏暗
以下为halcon实现代码
dev_close_window ()
创建原图 99
gen_image_const (Image, ‘byte’, 9, 9)
get_image_size (Image, Width, Height)
dev_open_window_fit_image (Image, 0, 0, Width, Height, WindowHandle)
生成随机数0-255,并将随机数设置成图像像素
tuple_rand (81, Rand)
Rand:=Rand100
tuple_int (Rand, Int)
Int:=Int+120
Cnt:=9
for Index := 0 to Cnt-1 by 1
for Index1 := 0 to Cnt-1 by 1
Pos:=Index*Cnt+Index1
set_grayval (Image, Index, Index1, Int[Pos])
endfor
endfor
*创建结构元素1 内部都是1
- 1 1 1
- 1 1 1
- 1 1 1
gen_image_const (ImageSE, ‘byte’, 3, 3)
Cnt:=3
for Index := 0 to Cnt-1 by 1
for Index1 := 0 to Cnt-1 by 1
Pos:=Index*Cnt+Index1
set_grayval (ImageSE, Index, Index1, 1)
endfor
endfor
*创建结构元素2
- 0 0 0
- 0 0 0
- 0 0 0
gen_image_const (ImageSE1, ‘byte’, 3, 3)
Cnt:=3
for Index := 0 to Cnt-1 by 1
for Index1 := 0 to Cnt-1