-
精品文档
Halcon
表面划伤检测实例
*
关闭活动图形窗口
dev_close_window
()
*
在程序执行中指定输出行为为
off
。
dev_update_window
('off')
*
****
*
step:
acquire
image
步骤:获取图像
*
****
读入文件名为
'surface_scratch'
的图像到
Image
read_image
(Image,
'surface_scratch')
get_image_size
(Image,
Width,
Height)
*
打开一个和
Image
宽高比一致的图
像窗口
dev_open_window_fit_image
(Image,
0,
0,
Width,
Width,
WindowID)
*
设置
窗口字体大小为
12
,字体类型为
Courier
,粗体不倾斜字体。
p>
set_display_font
(WindowID,
12,
'Courier',
'true',
'false')
*
设置填充模式为
'margin'
dev_set_draw
('margin')
*
定义输出轮廓线宽为
4
.
精品文档
dev_set_line_width
(4)
*
显示
Image
到窗
口
dev_display
(Image)
*WindowID
窗口使用黑色字体在一个方框内显示按
继续运行
字体,并注册
F5
消息处
理
disp_continue_message
(WindowID,
'black',
'true')
stop
()
*
****
*
step:
segment
image
步骤:图像分割
*
****
*
->
using
a
local
threshold
使用局部阈值
*
对
Image
进行
7*7
p>
均值滤波
mean_image
(Image,
ImageMean,
7,
7)
*************************************************
********************
*
得到的图像为:
*
*
*
*
用均值滤波图像作为二值化阈
值图像,返回小于灰度值小于该点阈值
-5
的图像。
dyn_threshold
(Image,
ImageMean,
DarkPixels,
5,
'dark')
***************************************
****
得到的区域为:
.
精品文档
*
->
extract
connected
components
提取连通分量
*
由分割出来的
DarkPixels
获得连通区域到
ConnectedRegions
*******
得到的连通区域为:
.
精品文档
connection
(DarkPixels,
ConnectedRegions)
*
< br>设置混合输出颜色为
12
种
dev_set_colored
(12)
*
显示当前图形窗口中的图像对象。
dev_display
(ConnectedRegions)
*
disp_continue_message
(WindowID,
'black',
'true')
stop
()
*
****
*
step:
process
regions
处理区域
*
****
*
->
select
large
regions
选取大区域
p>
*
从
ConnectedRegions<
/p>
中得到面积大于
10
小于
1000
的区域到
SelectedRegions
select_shape
(ConnectedRegions,
SelectedRegions,
'area',
'and',
10,
1000)
.
精品文档
*
设置当期图像窗口的图像对象为
Image
dev_display
(Image)
*
设置当期图像
窗口的图像对象为
SelectedRegions
dev_display
(SelectedRegions)
disp_continue_message
(WindowID,
'black',
'true')
stop
()
*
->
visualize
fractioned
scratch
可视化划分划痕
*
打开窗口设置局部
open_zoom_window
(0,
round(Width/2),
2,
303,
137,
496,
3,
WindowHandleZoom)
*
设置输出颜色为蓝色
dev_set_color
('blue')
dev_display
(Image)
dev_display
(SelectedRegions)
disp_continue_message
(WindowID,
'black',
'true')
stop
()
*
->
merge
fractioned
scratches
via
morphology
通过形态学合并划痕
*
合并
SelectedRegions
的并集到<
/p>
RegionUnion
union1
(SelectedRegions,
RegionUnion)
.