我有大量的图片(数十万张),每一张图片,我都需要说明它的右上角是否有水印。水印始终是相同的,并且位于相同的位置。它采用带符号和一些文本的功能区的形式。我正在寻找一种简单快速的方法来实现这一点,理想情况下,不使用SciPy(因为它在我使用的服务器上不可用——但它可以使用NumPy)
到目前为止,我已经尝试使用PIL和crop函数来隔离水印应该位于的图像区域,然后将直方图与RMS函数进行比较(参见http://snipplr.com/view/757/compare-two-pil-images-in-python/)。这样做不太好,因为两个方向都有很多错误。
任何想法都将非常感谢。谢谢
水印的位置准确吗?如何将水印应用于背景图像?
我假设水印是部分加或乘函数。带水印的图像可能是这样计算的:
mixinValue将是0.0-1.0,因此您可以通过使用乘数(1-mixinValue)重新应用水印来完成混合。这将产生与水印匹配的像素。只需根据原始水印测试结果图像的颜色。
当然,对带水印的图像进行压缩可能会导致testPixel出现一些变化。
另一种可能性是使用机器学习。我的背景是自然语言处理(不是计算机视觉),但是我试着用你的问题描述来创建一个训练和测试集,它看起来很有用(对看不见的数据100%准确)。
训练集
训练集由相同的带水印图像(正例)和不带水印图像(负例)组成。
测试集
测试集由不在训练集中的图像组成。
示例数据
如果你感兴趣,可以用example training and testing images试试。
代码:
完整版本可用as a gist。节选如下:
示例输出
您始终可以使用restb.ai的Specialized Image RecognitionAPI来自动执行水印检测过程。
Screenshot of Logo & Watermark detection demo
相关问题 更多 >
编程相关推荐