Isaac320
技术员
技术员
  • 最后登录2020-07-02
  • 发帖数25
  • 金币460枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
阅读:199回复:2

如何检查产品内部的气泡?

楼主#
更多 发布于:2020-06-30 09:51
如图所示,这是用x射线机器拍摄出来的图像。
这种产品生产出来内部有些有气泡,需要找到这些气泡计算总面积。

求大神指教,感激不尽

图片

喜欢0

最新打赏:0人

hero12000
初学者
初学者
  • 最后登录2020-07-03
  • 发帖数271
  • 金币11枚
  • 贡献勋章0枚
沙发#
发布于:2020-07-01 08:44
沙发,深度学习
lqy844980122
初学者
初学者
  • 最后登录2020-07-02
  • 发帖数39
  • 金币57枚
  • 贡献勋章0枚
  • 社区居民
板凳#
发布于:2020-07-02 14:37
*图片1,好像不能兼容,可以再试试
read_image (image2, 'D:/scindtec/image/xray/气泡/PPAK1212 BWL 2mil wafer +8mil clip.jpg')
*
binary_threshold (image2, Region4, 'max_separability', 'dark', UsedThreshold3)
connection (Region4, ConnectedRegions3)
fill_up (Region4, RegionFillUp2)
opening_rectangle1 (RegionFillUp2, RegionOpening2, 80, 100)

connection (RegionOpening2, ConnectedRegions4)
select_shape (ConnectedRegions4, SelectedRegions3, 'area', 'and', 55000, 999999)
count_obj (SelectedRegions3, Number)
for Index1 := 1 to Number by 1
    select_obj (SelectedRegions3, ObjectSelected, Index1)
    reduce_domain (image2, ObjectSelected, ImageReduced4)
    binary_threshold (ImageReduced4, Region5, 'smooth_histo', 'dark', UsedThreshold4)
    closing_circle (Region5, RegionClosing, 3.5)
    connection (RegionClosing, ConnectedRegions6)
    select_shape_std (ConnectedRegions6, SelectedRegions4, 'max_area', 70)
    closing_circle (SelectedRegions4, RegionClosing2, 1.5)
    fill_up (RegionClosing2, RegionFillUp3)
    opening_rectangle1 (RegionFillUp3, RegionOpening, 15, 20)
    erosion_rectangle1 (RegionOpening, RegionErosion1, 11, 11)
    erosion_circle (RegionOpening, RegionErosion, 5)
    reduce_domain (image2, RegionErosion, ImageReduced5)


    gauss_filter (ImageReduced5, ImageGauss, 3)

    
    sobel_amp (ImageGauss, EdgeAmplitude, 'sum_abs', 11)
    edges_sub_pix (EdgeAmplitude, Edges1, 'canny', 1,10, 15)

    select_shape_xld (Edges1, SelectedXLD, 'circularity', 'and', 0.25, 1)
    
    
    count_obj (SelectedXLD, Number1)
    gen_empty_obj (Select)
    if (Number1>0)    
        union_adjacent_contours_xld (SelectedXLD, UnionContours, 3, 1, 'attr_keep')    
        close_contours_xld (UnionContours, ClosedContours)      
        
        gen_region_contour_xld (ClosedContours, Region, 'filled')
        union1 (Region, RegionUnion1)
        connection (RegionUnion1, ConnectedRegions)
        shape_trans (ConnectedRegions, RegionTrans1, 'convex')
        count_obj (RegionTrans1, Number2)
        
        for Indexl := 1 to Number2 by 1
            select_obj (RegionTrans1, ObjectSelected1, Indexl)
            intensity (ObjectSelected1, image2, Mean, Deviation)
            dilation_circle (ObjectSelected1, RegionDilation, 3.5)
            difference (RegionDilation, ObjectSelected1, RegionDifference)
            intensity (RegionDifference, image2, Mean1, Deviation1)
            sub:=Mean-Mean1
            if (sub>6)
                concat_obj (Select, ObjectSelected1, Select)
                
                
              
            endif
        endfor
        area_center (Select, Area, Row, Column)
        Area:=sum(Area)
        gen_contour_region_xld (Select, Contours, 'border')
        
    else
        String:='OK'
    endif
    dev_display (image2)
    dev_display (Contours)
   endfor
游客

返回顶部
支付

欢迎打赏,请选择打赏金额

  • 1元
  • 6元
  • 10元
  • 66元
  • 100元

支付即代表同意《本站支付协议》 有疑问请联系客服