某些场景如目标区域是在一个环形的柱面,那么我们就需要将柱面图像进行拉伸,使目标区域在一个平面中显示
预处理:
极坐标显示 - 转换为笛卡尔坐标显示
原理是:得到一个环形Ring 然后得到最小外接圆半径,再得到ring的内圆半径,然后再将环形ring 区域内的内容进行拉伸处理,将环形的图像转换为水平平面显示,主要的算子解释如下:
柱面拉伸图像预处理,这里给出一般的预处理,根据实际情况选择。
方法
预处理和一般图像预处理相同
*填充圆环得到最小的外接圆半径的圆心坐标
shape_trans (Ring, OuterCircle, 'outer_circle')
*求一个区域的补集
complement (Ring, RegionComplement) 求一个区域的补集
connection (RegionComplement, ConnectedRegions)
select_shape (ConnectedRegions, InnerCircle, ['width','height'], 'and', [450,450], [650,650])
* Determine the parameters of the ring that contains the bar code.
*求内外圆形的半径圆心坐标 求一个区域的最小外接圆
smallest_circle (Ring, Row, Column, OuterRadius) 得到外圆最小的圆形半径和圆形坐标信息 求取外圆的信息
smallest_circle (InnerCircle, InnerRow, InnerColumn, InnerRadius) 到最小的圆形半径和圆心坐标信息 求取内圆的信息
* Now read the bar code. This is done by computing the polar transformation
* of the ring in the image that contains the bar code.
WidthPolar := 1440
HeightPolar := round(OuterRadius - InnerRadius - 10) 四舍五入算子
这是极坐标转换的主要算子:
polar_trans_image_ext (Image, PolarTransImage, Row, Column, rad(360), 0, OuterRadius - 5, InnerRadius + 5, WidthPolar, HeightPolar, 'bilinear')
主要参数设置:Image - 输入图像需要转换的原来图像 ,Row,Colum 圆环Ring的圆心坐标,接下来的两个参数表示需要拉伸的其实角度和终止角度。接下两个参数需要的是起始半径和终止半径,也就是说需要的到被识别文字的所在圆环区域。Bilinear 双线性插值法,精度大于邻近插值法

本文介绍了一种用于柱面图像预处理的方法,通过极坐标到笛卡尔坐标的转换,将柱面上的目标区域拉伸至平面上,以便于后续的一维码、二维码或字符的准确识别。
1054

被折叠的 条评论
为什么被折叠?



