1

我有一堆未压缩的双色调 TIF 文档图像。中间都有水印。当我通过 OCR 运行它们时,无法识别与水印重叠的文本。我正在尝试查看是否可以应用某种类型的清理来删除这些水印,以便能够识别丢失的文本。

同样,图像是黑白的,但是当您查看水印时,它会显示为灰色,因为它具有黑白像素图案,这使得水印中的字母不如常规文本“密集”。同时,水印字母很大,比普通文字大很多。

一个有点相似的图像的例子是这个(除了这个是彩色的,我的水印字符更厚更大;我的水印也短了很多:只有 3 到 4 个字母长)

似乎可能有某种清理过滤器,类似于从图像中删除大的黑色边框,除了边框通常比水印“更密集”,因此它们看起来“更黑”。

我有 3 种工具可供使用:GIMP、ImageMagick 和 IrfanView。您能否推荐这些工具的任何子集的任何特定功能可能对我有帮助?

4

1 回答 1

3

玩对比等并没有帮助,但我找到了一种不同的方式。如上所述,常规文本比水印文本更“密集”,这意味着常规黑色像素比水印黑色像素具有更多周围的黑色像素。所以我设计了一个简单的基于窗口的过滤和阈值算法。

这是我在 Matlab 中使用 5X5 窗口的方法:

im=imread('imageWithWmark.tif');
imInv = ~im;
nr=size(imInv,1);
nc=size(imInv,2);

d = 2;  % for 5X5 window
counts = zeros(nr,nc);
for rr = d+1 : nr-d-1
for cc = d+1 : nc-d-1
    counts(rr,cc) = nnz(imInv(rr-d:rr+d,cc-d:cc+d));
end
end

thresh=10;  % 10 out of 25 -- the larger the thresh the thinner the resulting letters are
imThresh = (counts>=thresh) & imInv;
imwrite(~imThresh,sprintf('Thresh_%d.tif',thresh),'Compression','none','Resolution',300);

当然,窗口的大小、阈值和其他参数取决于页面上常规文本的参数(字母更大/更小、更粗/更细等),但即使是这个初始版本也能很好地工作

于 2013-03-08T21:14:06.327 回答