Giter Club home page Giter Club logo

calling-card's Introduction

Calling Card

I got a calling card! Six pages of it. A week before valentines. :3 Its was written by a girl i really like. x3 A sadistic, linguisty, computer savvy girl. :[

This is a nodejs stab at processing images of handwritten characters.

The problem

She made up a code. Hand wrote it on a hard to edge detect background. Curved rows enough to be difficult to process. Picked character shapes that were uneven widths with similar shared structures. And wrote enough quantity to discourage timely manual decoding. source example

The solution

This tool first splits out rows. Then splits spaces between characters. Then replaces similar characters with the next available a-z letter. It was able to strongly split out each character but only succeeded identifying similar letters ~61% of the time. But it was enough to solve for basic words like "the", "and", and my name. From the partial text file, I was able to quickly fill in the holes manually.

The majority of the row/letter splitting was done by graphing distance to white, and taking the peaks. Similar for character identification, a profile was made by making a distance to white graph along the horizontal, and again along the vertical. source example

Why you want to use this!

  • image processing handwritten text. uneven text, with non-grid shaped rows/letters
  • unsupported languages/characters like this one she made up.
  • no training. (sadly, no learning components)

You dont want to use this if...

  • if its simple, use other peoples npm modules.
    • if rows are even and dont curve extremely.
    • if letters are typed
    • if letters are english or supported language
    • if letters are handwritten very consistently
  • it needs to work. (disclaimer, peak identification rate was ~61%)

Running it.

Edit index.js. Theres a config object that specifies the input, output, and debug flags for splitting rows, splitting letters, and letter matching. These debug flags stops execution at that point and returns an output image with colored dots marking the pixel ranges that have been identified during those steps

Sorry, It really needs to be cleaned up. If you legitimately are trying to do something similar, I learned a ton. Drop me an email at [email protected]

The Files

The docs folder has a number of various bw versions of the first page. Mainly used as script inputs. The output folder has outputs from various stages of the program running. Mainly row and letter splits.

calling-card's People

Contributors

safetyscissors avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.