matlab - 对齐 OCR 图像

标签 matlab image-processing alignment

我正在尝试将图像对齐作为 OCR 的预处理步骤。 问题是我希望对齐图像中包含文本的区域,而不使用对齐图像的模板。

我的想法是首先提取 ROI 的边界:

enter image description here

然后,绘制一些比例合适的矩形(还没有想到自动完成的方法),并尝试使用 imregcorr 来估计它们之间的几何变换。 :

enter image description here

之后,将获得的变换应用于图像本身:

enter image description here

如您所见,最终结果远非完美。

所以我想知道是否有更好的方法来获取边框和矩形之间的坐标变化并将其应用到图像上。

也有可能我的方法太天真,解决方案完全不同,所以请随意建议您认为合适的其他方法。

谢谢。

最佳答案

谢谢托钵僧!

我对 openCV 不太了解,因为我仍然需要学习 C++/python(可能很快我就会学习)。 但我确实使用投影变换在 matlab 中实现了类似的东西:

m = [mx my]; % Red border corners
s=[sx sy]; % Fixed rectangle borders
BW = poly2mask(mx,my,168,290); 
mask = uint8(repmat(BW,[1 1 3]));
TFORM = cp2tform(m,s, 'projective');
Iw = imtransform(I.*mask,TFORM);
[y,x] = find(im2bw(Iw,0));
imshow(Iw(min(y):max(y),min(x):max(x),:))

结果如下:

enter image description here

关于matlab - 对齐 OCR 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25835032/

相关文章:

image - 为什么我得到一个空白图像作为我的输出?

css - 在没有父容器的情况下对齐两个 <div>

c - ELF64加载和内存对齐

css - CSS 中的垂直对齐文本不起作用

matlab - 如何提取表的列名?

python - 如何使用 Python 将非常大的图像(tif)文件转换为数组

image - 在 MATLAB 中更改线上的像素值

android - 如果我使用的是 OpenCV 管理器,是否需要将 OpenCV native JNI 库复制到 jniLibs 目录?

c - 如何将 TargetLink 模型转换为 Simulink

matlab - 如何比较两种颜色?