小哥哥小姐姐觉得有用点个赞呗!
HALCON示例程序resistor.hdev通过不同焦距图像提取深度信息
示例程序源码(加注释)
- 关于显示类函数解释
Names := []
dev_close_window ()
for i := 1 to 10 by 1
Names := [Names,‘dff/focus_’ + (i$’.2’)]
endfor
read_image (Image, Names) - 将多通道图像组成一个多通道图像
channels_to_image (Image, Image)
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, ‘black’, WindowHandle)
for i := 1 to 10 by 1
访问多通道图像的指定通道
access_channel (Image, Image1, i)
endfor - depth_from_focus - 使用多个焦点水平提取深度。
- depth_from_focus(多通道图像:深度信息,深度图像:方式,提取清晰像素方式:)
depth_from_focus (Image, Depth, Confidence, ‘highpass’, ‘next_maximum’) - 均值滤波
mean_image (Depth, DepthHighConf, 11, 11) - 将像素值扩大到0-255
scale_image_max (DepthHighConf, ImageScaleMax) - 均值滤波
mean_image (ImageScaleMax, DepthMean, 51, 51) - 二值化
threshold (DepthMean, Resistor, 158, 255) - 分割连通域
connection (Resistor, ConnectedRes) - 选取最大面积区域
select_shape_std (ConnectedRes, FinalRes, ‘max_area’, 0) - 二值化
threshold (DepthMean, Solder, 125, 158) - 分割连通域
connection (Solder, ConnectedSol) - 筛选最大面积区域
select_shape_std (ConnectedSol, SelectedSol, ‘max_area’, 0) - 填充孔洞
fill_up (SelectedSol, FinalSol)
dev_set_line_width (3)
dev_set_draw (‘margin’)
dev_display (Image)
dev_set_color (‘red’)
dev_display (FinalSol)
dev_set_color (‘blue’)
dev_display (FinalRes)
处理思路
这个例子是主要讲解了通过不同焦距图像提取深度信息的应用。
后记
大家有什么问题可以向我提问哈,我看到了第一时间回复,希望在学习的路上多多结交良师益友。