我有一堆未压缩的黑白TIF文档图像。它们的中间都有一个水印。当我通过OCR运行它们时,与水印重叠的文本无法识别。我正在尝试是否可以应用某种类型的清理来删除这些水印,以便能够识别丢失的文本。
同样,图像是黑白的,但当您查看水印时,它显示为灰色,因为它具有黑白像素的图案,这使得水印中的字母不像常规文本那样“密集”。同时,水印字母非常大,比普通文本要大得多。
一个有点类似的图像的例子是this (除了这个是彩色的,在我的例子中水印字符更粗更大;我的水印也短得多:只有3到4个字母长)
似乎有一些清理滤镜类似于从图像中删除大的黑色边框,除了边框在视觉上比水印更“密集”,所以它们看起来“更黑”。
我有3个工具可供选择: GIMP,ImageMagick和IrfanView。你能推荐这些工具的任何子集的任何特定功能,可能对我有帮助吗?
发布于 2013-03-09 05:14:06
玩对比度等没有帮助,但我找到了一种不同的方法。如上所述,常规文本比水印文本“密集”得多,这意味着常规黑色像素比水印黑色像素具有更多的周围黑色像素。因此,我设计了一个简单的基于窗口的过滤和阈值算法。
下面是我如何在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);当然,窗口的大小、阈值和其他参数取决于页面上常规文本的参数(字母更大/更小、更粗/更细等),但即使是这个初始版本也工作得很好
https://stackoverflow.com/questions/15296977
复制相似问题