Jigsaw solver

Discussion in 'Python' started by bearophileHUGS, Mar 2, 2005.

  1. bearophileHUGS, Mar 2, 2005
    #1
    1. Advertisements

  2. bearophileHUGS

    mensanator Guest

    Hey, that DataGlyph demo works pretty neat.

    <quote>
    Decoding your DataGlyph.

    DataGlyph decoded successfully.

    four score and seven years ago our fathers brought
    forth on this continent a new nation conceived in
    liberty and dedicated to the proposition that all
    men are created equal

    To test the robustness and error correction DataGlyphs
    provide, you might want to "damage" a DataGlyph by
    editing it with paint program, obscuring some of the
    marks and uploading the damaged image for decoding.

    Serious aficionados have been known to print out
    their DataGlyph, spill some coffee on it, tear off
    small pieces, fold it into a paper airplane, run over
    it with a car, light small portions on fire, then scan
    the document back in and try to extract the message.
    If you are such an enthusiast, have fun, be safe, and
    remember even great technologies have their limits.
    </quote>


    Of course, being an old System Test Engineer whose job it
    was to figure out how to break software, I couldn't let
    this challenge go unanswered.

    So, picking up the gauntlet, I broke it in 5 seconds.

    <quote>
    Decoding your DataGlyph.

    Decoding dataglyph59683-2.bmp...
    Unable to decode this dataglyph

    Top 5 reasons a DataGlyph might fail to decode

    1. Hey... that's not a DataGlyph
    2. Not enough of the DataGlyph is present
    3. Way too much damage
    4. Trouble locating the DataGlyph
    5. Cosmic rays

    Usually if a human being can make out the individual
    marks, the decoding software should also be able to
    do so. This online decoder is optimized for scanned
    images from a paper documents.

    If you are a technical user evaluating DataGlyphs,
    please be aware that this online DataGlyph decoder
    is expecting mainstream DG500 DataGlyphs. This online
    decoder will not work if you are testing a specialized
    DataGlyph variant such as serpentone, yellow DataGlyph
    or address carpet.

    Finally, note that a customized image processing
    front-end or a customized DataGlyph locator algorithm
    might yield better results in application scenarios
    such as handheld camera images with severe perspective
    distortion.
    </quote>

    Naturally, the real answer is none of the above.

    And the damage can be undone in 5 seconds also.

    And, under the right circumstances, an undamaged
    DataGlyph could suffer the same fate (which also implies
    that the damaged DataGlyph could be read under the
    same circumstances).

    ObPuzzle: how did I "damage" the image?
     
    mensanator, Mar 2, 2005
    #2
    1. Advertisements

  3. bearophileHUGS

    Tim Churches Guest

    You created a mirror image.

    The system can be made resistant to that problem by only allowing
    palindromic messages to be encoded, such as "Madam I am Adam.", 'Able
    was I ere I saw Elba." and "Named under a ban, a bared nude man."

    Seriously, I am surprised that the Xerox demo does not try flipping the
    image around various axes. It would be trivial to add these
    transformations. Well, trivial to flip images along a few, obvious axes,
    but not along every possible axis.

    What I want to know is whether any open source implementations of this
    technology are available. No doubt it is patented to death by Xerox.

    Tim C
     
    Tim Churches, Mar 2, 2005
    #3
  4. bearophileHUGS

    mensanator Guest

    Damn. Too easy. But think how much fun you could have
    with a salesman if your DataGlyph was printed on a
    transparency (hence, the right circumstances being
    right side up or upside down).

    I once made an employee id badge that I would slip
    into the salesman's stack of test badges. The employee's
    name was CHECKSUM ERROR. What a laugh riot.
    Why couldn't they simply encode your input as a palindrome?

    Input: Mary had an aeroplane
    Encoding: Mary has an aeroplaneenalporea na dah yraM

    And then simply divide in half when decoding.
    That's why it took me all of 5 seconds - the time needed to
    select the Flip Horizontal menu item in Windows Paint.
    Has that ever stopped anybody?
     
    mensanator, Mar 2, 2005
    #4
  5. bearophileHUGS

    Tim Churches Guest

    There is another explanation for the rapidity with which your brain
    teaser was solved, but modesty prevents me from mentioning it.
    I should have been more precise and said "natural language palindrome",
    the rules for which promulgated by Martin Gardiner of Scientific
    American fame are that capitalisation, whitespace and punctuation are
    ignored and that each word must be a recognised word or commonly used
    proper noun in the target language (and it must read the same forwards
    and backwards).

    I wonder, do ideographic languages have palindromes?
    Ask the Xerox legal department.

    Tim C
     
    Tim Churches, Mar 2, 2005
    #5
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.