从多个水印中恢复原始图像
Posted
技术标签:
【中文标题】从多个水印中恢复原始图像【英文标题】:Restore original image from multiple watermarked 【发布时间】:2021-03-25 13:11:19 【问题描述】:我有多张带有水印的图片。每个水印形状相同,由白色 (#fff) 和黑色 (#000) 颜色组成,但比例随机:
不透明度 10-15% 身高 95-100% y 位置:从中间 +- ~20px 轻微变形首先,我检测the lightest 和the darkest 变体。 另外,我可以列出不同像素的位置。那么,如何恢复original image?
我有很多想法,但每个想法都在某些情况下以失败告终。是否可以在不使用神经网络和其他库(如 OpenCV)的情况下解决此问题?
感谢您的帮助,我已经困惑了一个多星期了。
【问题讨论】:
为什么不想使用 OpenCV 或 NN?这不是一个简单的问题,您可以尝试仅使用 OpenCV 来解决它们,这取决于问题的范围。我想,这本身就非常困难。我认为没有办法轻松解决这个问题。最好的方法是使用 NN 方法。 您能否提供一张图片的几个或多个变体,用于演示目的? @ChristophRackwitz,它可以是任何图像,其顶部有一个仅由白色和黑色组成的水印,但每个图像的位置和透明度不同。这样我们就得到了不同像素的地图。任务是为每个像素确定其原始颜色 我已经发布了答案。这对你有帮助吗? 已经在这里解决了:https://***.com/questions/52461350/remove-text-from-jpeg/52523303#52523303 【参考方案1】:假设您拥有相同的图像,但每个版本中都有一些像素受到干扰...
堆叠它们,取中位数。
从数学上讲,您需要“众数”,但中位数是更常见的运算。要么将产生每个像素的多数值(或足够接近的值),这应该是该像素的未触及值。
您可以只使用 numpy 作为中值,使用 scikit-image 加载文件。
如果您的像素在所有版本中总是被水印覆盖,情况就会变得棘手。您必须制定一些水印对像素影响的模型。我认为这是可行的,但工作量很大。
【讨论】:
以上是关于从多个水印中恢复原始图像的主要内容,如果未能解决你的问题,请参考以下文章
图像隐写基于matlab图像内容自恢复水印含Matlab源码 2321期
图像隐写基于matlab图像内容自恢复水印含Matlab源码 2321期