旋转圆形图像

时间:2014-12-06 10:12:01

标签: matlab opencv image-processing image-rotation

您好我要在圆形图像上进行文本检测。 经过一些预处理后,我对图像进行了极地笛卡尔变换

这是我的真实形象的例子

this is my real image

进行p2c转换后,我的图像变得像

p2c transofrmation

但是由于我的图像以不同的角度出现,有时p2c转换会切断我的角色

cutted char

我认为我需要在p2c转换之前进行适当的旋转。

我的问题是这种情况适合哪种旋转方法?或者我应该根据直方图值开始p2c变换?或者你们会以什么样的方式建议我?

谢谢

1 个答案:

答案 0 :(得分:2)

我建议你进行极地笛卡尔变换并分析你得到的图像X。你可以通过对x维度上的所有值求和并使用阈值来检测是否有字母来找到你的字母:

y = sum(X,1);
th = (max(y) + min(y)) / 2;
letters = y < th;

现在,您可以查看图像边框处是否有字母,如果是这种情况,则会移动图像。

if sum(letters([1:10,end-10:end]))
   X = circshift(X,[0,10]);
end

当然你现在无法确定边框上没有字母,所以最好循环这个程序,直到在边框处找不到字母。