The algorithm dosent need to be too complex. You basically look at each still frame as grayscale, generate a hashtable of brightness values mapping to monospaced characters, and convert each grayscale pixel to a character.
You can do better than that by taking advantage of character shapes, though. Minimal example:
()
and:
)(
have the same brightness values, but we see them pretty differently.
Ideally you would use edge detection, maybe some object detection, and then be willing to compromise a little on brightness in order to make important edges nice. I don't know if there's software out there that does this, though.
Ideally you would use edge detection, maybe some object detection, and then be willing to compromise a little on brightness in order to make important edges nice. I don't know if there's software out there that does this, though.