halcon方法学习之blob分析

来源:互联网 发布:淘宝一天十个访客 编辑:程序博客网 时间:2024/05/17 06:05

转自:http://qing.blog.sina.com.cn/2316220871/8a0eb9c733002oo4.html


*partical。hdev:Measurement of small particles

​图片为医学颗粒成像,这里的图像处理主要是为了把颗粒的位置信息确定下来,如图,大颗粒很好确认,但是小颗粒的位置信息比较模糊,需要后续操作来提取:

先提取大颗粒然后提取出小颗粒的候选位置
dev_update_off()
dev_close_window()
dev_open_window(.......)
set_display_font(....)
read_image(..)
dev_display(...)
display message
halcon方法学习之blob分析
....
stop()

threshold(Image,Large,110,255)
1   dilation_circle(Large,LargeDilation,7.5)
以圆形为模板,对large图像进行膨胀运算,7.5指的是模板半径
。。。
是指显示和画图参数,对LargeDilation图像进行红色填充式的显示margin
。。。
stop()

2   complement(LargeDilation, NotLarge)
​对膨胀过后的region进行求补集运算,得到整个原图中除去大颗粒区域以外的区域NotLarge
reduce_domain(Image,NotLarge,ParticlesRed)
减少操作区域,从Image中剪掉NotLarge区域以外的区域,保存为ParticlesRed
mean_image(ParticlesRed, Mean, 31,31)
按照模板的平均值来对输入图像进行平滑,保存在输出图像中
3   dyn_threshold(ParticlesRed, Mean, SmallRaw, 3,' light')图片阈值分割
使用Mean这个threshold(Mean是上述NotLarge也就是说小颗粒所在的区域ParticlesRed 的平均值)对图像ParticlesRed(未经过均值处理的NotLarge区域)进行筛选,3是Offset,选择light格式,规则如下:

original=go,threshold=gt(这里指的是Mean)
Light: go>=gt+offset
dark:    go<=gt-offset
equal:  gt-offset<=go<=gt+offset
not_equal:   go<gt-offset 或者go>gt+offset

halcon方法学习之blob分析

此处的筛选,是为了得到小颗粒区域中,比平均值大的区域(可能是小颗粒的存在)
opening_circle(SmallRaw, Small, 2.5)  
对得到的SmallRaw进行圆模板开运算
connection(Small, SmallConnection)
...
显示控制信息
。。。
stop()

接下来从这些候选位置中,人工确认小颗粒
dev_set_color('green')
dev_display(Image)
dev_set_draw('margin')
dev_display(SmallConnection)

Button:=1
while(Button==1)
      disp_message(WindowID,['左键选择对象,右键退出.' ], 'image',5,5,'black','true')
      dev_set_color('green')
      get_mbutton(WindowID, Row,Column,Button)
      接受图像上面的鼠标操作,并根据鼠标输入进行下一步处理
      dev_display(Image)
      dev_set_color('red ')
      select_region_point(SmallConnection, SmallSingle, Row, Column)
      这里是根据Row和Column来Choose all regions containing a given pixel.并保存到           SmallSingle中
      dev_display(SmallSingle)
      count_obj(SmallSingle,NumSingle)
      if(NumSingle==1)
            intensity(SmallSingle,Image,MeanGray,DeviationGray)
            计算输入图像Image中指定region(这里是指SmallSingle)的均值和方差
            area_center(SmallSingle,Area,Row,Column)
            disp_message......
      endif
endwhile
dev_set_line_width(1)
dev_update_on()

总结:
例子主要运用求补集complement和图片阈值分割法dyn_threshold来筛选出小颗粒可能存在的位置,最后通过人工判断来使用鼠标控制结果。


二,算法的改进
目的主要是为了避免后期人工识别,采用面积筛选法和满水填充法对候选区域进行自动识别的尝试

0 0
原创粉丝点击