I am working on a project which can encode some data in an Image and share it with other people by printing it out as hard copy. Now, other people can take a picture of the hard copy they got and decode the data.

I started researching on it and found some efficient projects like Mobistego which can encode and decode any image very effectively.

But the thing is, I wanted to use my Android phone's camera to take random shots and compare with a pre stored image and decode the data.

Other way possible can be like using some image recognition algorithm.

  • 1
    You can also look for watermarking different printers print nearly invisible watermarks to identify the source - there are furthermore nearly invisible digital watermarks on certain images on the net, to identify misuse - some of them can survive printing and rescanning
    – Falco
    Aug 11, 2015 at 14:07
  • 1
    Well, while visual cryptography on printed sheet already seems to be a very narrow scope, visual cryptography on printed then photographed (using a common phone camera even more) seems very, very specific and I doubt there is any viable solution. However, you may want to get in touch with the people from Cryptography who may have better knowledge of uncommon cryptographic projects which may match your needs (maybe some stenography method which could survive the image being printed then photographed?). Aug 12, 2015 at 8:48
  • Thanks @Falco and WhiteWinterWolf. I'll check and get back.
    – Mohd. Umar
    Aug 12, 2015 at 10:06
  • 1
    Some kind of an image with data? Like a QR code?
    – Aron
    Aug 12, 2015 at 14:05
  • How much data are you trying to encode? A few words, couple sentence, paragraphs, pages? The low resolution of camera phones will limit your ability to encode large amounts of data.
    – cybernard
    Aug 14, 2015 at 20:39

2 Answers 2


Pastec.io is a very nice API using OpenCV, which can be used for encrypting the image and detecting using android phone's camera.


You may be interested in Visual cryptography:

Visual cryptography is a cryptographic technique which allows visual information (pictures, text, etc.) to be encrypted in such a way that decryption becomes a mechanical operation that does not require a computer.

The method I know relies on using several printed pages to convey the message. Taken separately these pages will just contain blank noise, but if combined by using transparency then their mutual content visually combinate and the hidden picture appear.

I recommend you this nice video, it visually shows the idea and then apply it into a watermarking system embedding a logo inside a black & white printed photo.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .