opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

极坐标变换定义">极坐标变换定义

我们知道在二维坐标系中,有直角坐标系,也有极坐标系,二者的转换关系是:


opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

如下图:


opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

如图,直角坐标系的圆心与极坐标系的圆心一一对应,且圆弧BA可以通过极坐标变换到极坐标系ρ=r的一条直线上,实现由圆形到直线的转换。这往往在一些图像处理中很有用。

实际上,我们在图像处理中,往往还不是处理这样的圆弧,而更多的是处理圆环区域。如下,


opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

同理,我们可以把(a)图中的圆环区域1234,转换成矩形区域(b).矩形区域与圆环存在一定的对应关系,区域转换满足:转换前后两区域顶点1234一一对应,转换后的矩形区域宽为圆环内外弧弧长(ϕ2ϕ1).

具体的数学转换关系是:获取圆环区域的圆心坐标(x0,y0)
显然A点的灰度值应该与A’的灰度值相同,但是A’的坐标值通常不是整数,因此无法计算A’的像素值,可以通过双线性插值获得其近似像素值。

极坐标变换在OCR中的应用

在工业视觉领域,经常要进行字符识别,但是有些字符是印在像硬币、CD唱片机一样的圆形区域上,如下图:


opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二
图2

我们想要识别硬币上的字符,这时需要使用OCR。OCR通常需要进行两步,第一是字符分割,第二是字符识别。对于此图而言,字符分割不容易,主要是由于我们需要识别的字符位于环形区域中,并不是一般意义上的水平排布,此时我们就可以使用如上的极坐标变换,先定位字符的圆环区域,再转变到水平的矩形区域。这时再采取阈值分割、blob分析等手段分割字符,进而就可以进行OCR了。

极坐标变换后的图是:


opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二
图3

其他示例


opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

数学公式:

图1

opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

图2

opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

图3

opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

图4

opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

图5

opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

图6

opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

图7

opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

图8

opencv 笛卡尔坐标转换为极坐标 cvLogPolar的应用二

别的参考博客:https://blog.****.net/liyuan02/article/details/6750828
https://blog.****.net/zcg1942/article/details/80886999