halcon印章文字提取
list_image_files ('./印章', 'default', [], ImageFiles)
dev_get_window (WindowHandle0)
flag:=true
for Index := 0 to |ImageFiles|-1 by 1
? ? read_image (Image, ImageFiles[Index])
? ? decompose3 (Image, ImageR, ImageG, ImageB)
? ? trans_from_rgb (ImageR, ImageG, ImageB,\
? ? ? ? ? ? ? ? ? ? ImageH, ImageS, ImageV, 'hsv')
? ? threshold (ImageS, Region, 60, 255)
? ? closing_circle (Region, RegionClosing, 3.5)
? ? connection (RegionClosing, ConnectedRegions)
? ? fill_up (ConnectedRegions, RegionFillUp)
? ? *1.取最外側的圓
? ? select_shape_std (RegionFillUp, BigCircle, 'max_area', 70)
? ? area_center (BigCircle, Area, Row, Column)
? ? erosion_circle (BigCircle, BigCircle, 15.5)
? ? smallest_circle (BigCircle, Row1, Column1, R)
? ? *2.取五角星
? ?opening_circle (ConnectedRegions, RegionOpening, 3.5)
? ?connection (RegionOpening, ConnectedRegions)
? ? select_shape (ConnectedRegions, SelectedRegions, \
? ? ? ? ? ? ? ? ? ['row','column'], 'and', [Row-10,Column-10], [Row+10,Column+10])
? ? select_shape (SelectedRegions, star, 'width', 'and', 80, 300)
? ? shape_trans (star, RegionTrans, 'outer_circle')
? ? dilation_circle (RegionTrans, smallCircle, 15.5)
? ? smallest_circle (smallCircle, Row2, Column2, r)
? ? *大圓減去小圓得到ROI 環
? ? dev_set_draw ('margin')
? ? difference (BigCircle, smallCircle, RegionDifference)
? ? *極坐標變換扯直
? ? polar_trans_image_ext (ImageS, PolarTransImage,\
? ? ? ? ? ? ? ? ? ? ? ? ? ?Row, Column,rad(270), rad(-90), \
? ? ? ? ? ? ? ? ? ? ? ? ? ?R, r, 2*3.14159*R, R-r, 'nearest_neighbor')
? ? if (flag)
? ? ? ? ? ? dev_open_window (0, 0, ?2*3.14159*R, R-r,'white', WindowHandle1)
? ? ? ? ? ? flag:=false
? ? endif
? ? dev_set_window (WindowHandle0)
? ? dev_clear_window ()
? ? dev_display (Image)
? ? dev_set_color ('green')
? ? dev_set_line_width (3)
? ? dev_display (RegionDifference)
? ? dev_set_window (WindowHandle1)
? ? dev_clear_window ()
? ? dev_display (PolarTransImage)
? ? stop()
endfjilü?
總結
以上是生活随笔為你收集整理的halcon印章文字提取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++如何限制模板类的类型
- 下一篇: js判断手机是否安装了某个APP,如果安