Halcon表面划伤检测实例.docx

上传人:b****8 文档编号:9948477 上传时间:2023-02-07 格式:DOCX 页数:11 大小:627.31KB
下载 相关 举报
Halcon表面划伤检测实例.docx_第1页
第1页 / 共11页
Halcon表面划伤检测实例.docx_第2页
第2页 / 共11页
Halcon表面划伤检测实例.docx_第3页
第3页 / 共11页
Halcon表面划伤检测实例.docx_第4页
第4页 / 共11页
Halcon表面划伤检测实例.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Halcon表面划伤检测实例.docx

《Halcon表面划伤检测实例.docx》由会员分享,可在线阅读,更多相关《Halcon表面划伤检测实例.docx(11页珍藏版)》请在冰豆网上搜索。

Halcon表面划伤检测实例.docx

Halcon表面划伤检测实例

Halcon表面划伤检测实例

 

 

 *关闭活动图形窗口 

 dev_close_window() 

*在程序执行中指定输出行为为off。

 

 dev_update_window('off') 

***** 

*step:

acquireimage步骤:

获取图像 

 *****读入文件名为'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,粗体不倾斜字体。

 

 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"继续运行字体,并注册F5消息处理 

 disp_continue_message(WindowID,'black','true') 

 stop() 

***** 

 *step:

segmentimage步骤:

图像分割 

 ***** 

 *->usingalocalthreshold使用局部阈值 

*对Image进行7*7均值滤波 

mean_image(Image,ImageMean,7,7) 

********************************************************************* 

*得到的图像为:

 

*

 

*用均值滤波图像作为二值化阈值图像,返回小于灰度值小于该点阈值-5的图像。

 

dyn_threshold(Image,ImageMean,DarkPixels,5,'dark') 

*************************************** 

****得到的区域为:

 

 

 *->extractconnectedcomponents提取连通分量 

*由分割出来的DarkPixels获得连通区域到ConnectedRegions 

*******得到的连通区域为:

 

 

 connection(DarkPixels,ConnectedRegions) 

*设置混合输出颜色为12种 

 dev_set_colored(12) 

*显示当前图形窗口中的图像对象。

 

dev_display(ConnectedRegions) 

 disp_continue_message(WindowID,'black','true') 

 stop() 

***** 

 *step:

processregions处理区域 

 ***** 

 *->selectlargeregions选取大区域 

*从ConnectedRegions中得到面积大于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() 

*->visualizefractionedscratch可视化划分划痕 

*打开窗口设置局部 

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() 

 *->mergefractionedscratchesviamorphology通过形态学合并划痕 

*合并SelectedRegions的并集到RegionUnion 

union1(SelectedRegions,RegionUnion) 

*以3.5作为圆形区域扩张的半径,对RegionUnion扩张得到RegionDilation 

dilation_circle(RegionUnion,RegionDilation,3.5) 

 

 dev_display(Image) 

 dev_display(RegionDilation) 

 disp_continue_message(WindowID,'black','true') 

stop() 

*由RegionDilation获取骨架给Skeleton 

 skeleton(RegionDilation,Skeleton) 

 

*通过8邻接或四邻接方法将骨架链接后传给Errors 

 connection(Skeleton,Errors) 

 

dev_set_colored(12) 

 dev_display(Image) 

 dev_display(Errors) 

disp_continue_message(WindowID,'black','true') 

stop() 

*->distinguishsmallandlargescratches区分大小划痕 

*关闭窗口 

close_zoom_window(WindowHandleZoom,Width,Height) 

*选择面积大于50小于1000的区域到Scratches 

 

select_shape(Errors,Scratches,'area','and',50,10000) 

*选择面积大于1小于50的区域到Dots 

 select_shape(Errors,Dots,'area','and',1,50) 

 

 dev_display(Image) 

dev_set_color('red') 

 dev_display(Scratches) 

 dev_set_color('blue') 

 dev_display(Dots) 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1