我正在尝试将图像对齐为OCR的预处理步骤。 问题是我希望在不使用对齐图像模板的情况下对齐包含文本的图像中的区域。
我的想法是首先提取投资回报率的边界:
然后,绘制一些具有拟合比例的矩形(尚未想到自动完成它的方法),并尝试使用imregcorr估计它们之间的几何变换:
之后,将获得的转换应用于图像本身:
如您所见,最终结果远非完美。
所以我想知道是否有更好的方法来获得边框和矩形之间的坐标变化,并将其应用于图像。
还有可能我的方法过于幼稚,而且解决方法完全不同,所以请随意提出其他方法。
感谢。
答案 0 :(得分:1)
谢谢托钵僧!
我对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),:))
结果如下: