网淘巴来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

halcon对粘连零件处理及计数方法一

2022-10-19 新闻来源:网淘巴 围观:296
''

以下方法是转载

 

dev_cle[文]ar_wind[章]ow()

*读取图片

read_im[来]age (Image,[自] 'C:/User[网]s/Admin[淘]istrato[巴]r/Deskt[文]op/new/[章]QQ图片201[来]6121219[自]3015.jp[网]g')

get_ima[淘]ge_size[巴] (Image,[文] Width, Height)[章]

*自动阈值分割[来]

bin_thr[自]eshold (Image,[网] Region)[淘]

*分割后选择的[巴]是所需的背景,[文]所以求反一次

complem[章]ent (Region[来], RegionC[自]ompleme[网]nt)

dev_dis[淘]play(Im[巴]age)

* dev_dis[文]play(Re[章]gionCom[来]plement[自])

*做一次闭运算[网]

closing[淘]_circle[巴](Region[文]Complem[章]ent, RegionC[来]losing,[自] 3.5)

*空洞填充

 f[网]ill_up_[淘]shape (Region[巴]Closing[文], RegionF[章]illUp, 'area', 1, 100)

 *[来]欧式距离函数的[自]距离变换

 d[网]istance[淘]_transf[巴]orm (Region[文]FillUp,[章] Distanc[来]eImage,[自] 'octagon[网]al', 'true', Width, Height)[淘]

 *[巴]int4转by[文]te

 c[章]onvert_[来]image_t[自]ype (Distan[网]ceImage[淘], ImageCo[巴]nverted[文], 'byte')

 *[章]图像取反

 i[来]nvert_i[自]mage (ImageC[网]onverte[淘]d, ImageIn[巴]vert)

 *[文]增加对比度

 s[章]cale_im[来]age_max[自] (ImageI[网]nvert, ImageSc[淘]aleMax)[巴]

 *[文]高斯平滑处理

 g[章]auss_im[来]age (ImageS[自]caleMax[网], ImageGa[淘]uss, 11)

 *[巴]分水岭算法

 w[文]atershe[章]ds_thre[来]shold (ImageG[自]auss, Basins,[网] 10)

 *[淘]计数统计为29[巴]

 c[文]ount_ob[章]j (Basins[来], Number)[自]

 *[网]发现有小区域面[淘]积干扰,重新选[巴]择区域

select_[文]shape (Basins[章], Selecte[来]dRegion[自]s, 'area', 'and', 5267.61[网], 119050)[淘]

*获取到正确的[巴]数目25

count_o[文]bj (Select[章]edRegio[来]ns, Number1[自])

[网][淘][巴][文][章][来][自][网][淘][巴][文][章][来][自][网][淘]

原文链接:https://blog.csdn.net/LearningAlways/article/details/53588931


上述代码不适应新的Halcon版本,想查看新Halcon版本 对应代码和过程总结及函数说明请付积分查看

ev_clear_window()
*读取图片
read_image (Image, 'E:/程序/程序/halcon/识别粘连物体/粘连图像.JPG')
get_image_size (Image, Width, Height)
*自动阈值分割
binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)
*分割后选择的是所需的背景,所以求反一次
complement (Region, RegionComplement)
dev_display(Image)
*做一次闭运算
closing_circle(RegionComplement, RegionClosing, 3.5)
*空洞填充
 fill_up_shape (RegionClosing, RegionFillUp, 'area', 1, 100)
 *欧式距离函数的距离变换
 distance_transform (RegionFillUp, DistanceImage, 'octagonal', 'true', Width, Height)
 *int4转byte
 convert_image_type (DistanceImage, ImageConverted, 'byte')
 *图像取反
 invert_image (ImageConverted, ImageInvert)
 *增加对比度
 scale_image_max (ImageInvert, ImageScaleMax)
 *高斯平滑处理
 gauss_filter (ImageScaleMax, ImageGauss, 11)
 *分水岭算法
 watersheds_threshold (ImageGauss, Basins, 10)
 *计数统计为29个
 count_obj (Basins, Number)
 *发现有小区域面积干扰,重新选择区域
select_shape (Basins, SelectedRegions, 'area', 'and', 5267.61, 119050)
*获取到正确的数目26
count_obj (SelectedRegions, Number1)


函数说明

  1. 读取图像  read_image (输出变量:图像Object,输入变量:图像地址)
  2. 获取对象尺寸get_image_size (输入变量:Image, 输出变量:Width, 输出变量:Height)
  3. 用二进制阈值来分割图像 binary_threshold (输入变量:Image , 输出变量:处理后的区域( Region ), 输入变量:Method:分割方法('max_separability':最大限度的可分性, 'smooth_histo':直方图平滑) ,输入变量:  LightDark提取的是黑色部分 'dark'还是白色部分'light' ,  输出变量: UsedThreshold返回binary_threshold 使用的阈值)

 

 

 

 

 

 

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
以下内容需要兑换:

本文链接:https://www.wtao8.com/post/215.html 转载需授权!

分享到:

相关文章

龙年
大发