I have a task to extract watermark itself from a highly complex image. Below there is an example. We have, say this image:


Then we have some watermark like this one which is either transparent or white(black added for visibility here)


So we apply the watermark on the image with 5-10% opacity and get the resulting image.

Resulting image

So the question is whether it is possible to extract the watermark from the resulting image NOT having the original image. The result shouldn't be precise but the meaning of the watermark(that there is a person, sun, house, numbers, fish and a word) must be obtained. I have tried using photoshop and played with all different kinds of adjustments but I am able to obtain only pieces which are above some even background like parts of the word visible over the water. I am not asking for a complete solution because there seems to be no practical way but I am seeking for help and ideas in determining best practices to extract the watermark. All ideas appreciated!

  • Tried increasing contrast?
    – JoakimE
    Mar 13, 2017 at 21:57
  • 1
    Can you explain why this security related? If not, it should go on another site.
    – user13695
    Mar 13, 2017 at 22:05
  • Would it be adequate to have code that tests for a known watermark (or set of watermarks)?
    – John Wu
    Mar 13, 2017 at 22:44
  • Used this stack exchange because this is the only stack exchange where people are aware of steganography. As well, the purpose of this problem is closely related with forensics.
    – tna0y
    Mar 14, 2017 at 0:43
  • Yes, tried doing this with contrast, moved around levels and even created a python script which, given the expected watermark opacity highlights places where the brightness delta between neighbouring pixels corresponds to the expected brightness increase. It all gives about 15-30% of desired result.
    – tna0y
    Mar 14, 2017 at 0:47


Browse other questions tagged .