在别的网站看到一个案例:需要识别环状物体上的字符(OCR),要用到极坐标变换。
按照最简单的模式,原始检测方案如下:
read_image (Image, 'H:/学习笔记/halcon笔记/1.jpg')
*获取图片尺寸,极坐标变换成原始图片大小
get_image_size (Image, Width, Height)
*获取圆环物体区域(包含字符),抠图
threshold (Image, Region, 0, 100)
connection (Region, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
fill_up_shape (SelectedRegions, RegionFillUp, 'area', 1, 10000)
reduce_domain (Image, RegionFillUp, ImageReduced)
*求外圆圆心,半径
gen_contour_region_xld (RegionFillUp, OuterCont, 'border')
fit_circle_contour_xld (OuterCont, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
*求内圆圆心,半径
fill_up (RegionFillUp, RegionFillUp1)
difference (RegionFillUp1, RegionFillUp, RegionDifference)
gen_contour_region_xld (RegionDifference, InnerCont, 'border')
fit_circle_contour_xld (InnerCont, 'algebraic', -1, 0, 0, 3, 2, Row1, Column1, Radius1, StartPhi1, EndPhi1, PointOrder1)
*极坐标变换
polar_trans