Morse code image decoder
Choose a photo or screenshot of morse to turn it into text. The picture is read on your device and never uploaded.
or drop one here, or paste a screenshot. PNG, JPG, WebP and GIF all work.
How to use it
- Press Choose a picture and pick a photo or screenshot, or drop it on the box. On a phone you can take the photo there and then. You can also paste a screenshot.
- Look over the picture. Each letter it read has a box round it, dashed where it is unsure.
- Click a letter to find its box in the picture, and fix the transcript if you need to.
- Press Copy text.
What it reads
- Drawn morse, in pen, pencil or paint, with round or square dots and dashes of any thickness.
- Typed morse: full stops and hyphens in a screenshot, in an ordinary or a monospaced font.
- Slashes and bars: a slash between words, a slash or bar between every letter, or the Pramuka way, a slash between letters and two between words.
- Light on dark, such as chalk on a board or white text on a black screen.
- Several rows, read top to bottom. The end of a row counts as the end of a word, unless every row is a single letter: then the rows spell a word, and columns side by side are read one after the other.
It doesn’t read codes drawn as other shapes, such as a line of zigzags. For morse in a video or flashes of light, use the video decoder.
How it reads morse
It reads the pixels, not the characters, so it doesn’t need to recognize a font. It works in four steps.
- It finds the ink. Each pixel is compared with the light around it, not with one fixed level, so a shadow across the page or a dark background doesn’t hide the marks.
- It names each shape. From the most common thickness it learns the pen’s width. A shape about as long as it is thick is a dit (the short signal); one about three times as long is a dah (the long one). Specks, frames and most letters are passed over; a tall, thin stroke is read as a slash.
- It lines up the rows. It measures how far the rows are turned, levels them, and reads each one left to right.
- It sorts the gaps. The spaces between marks fall into three sizes: inside a letter, between letters, and between words. It learns those sizes from the picture.
Those sizes are set by ITU-R M.1677-1. A dah is three dits long; the gap inside a letter is one dit, between letters three, and between words seven. Typed morse is spaced by its font instead, so there the gaps are measured from the middle of one mark to the middle of the next.
How accurate it is
We test the decoder on generated pictures: a sentence with every letter and the ten digits, drawn four ways (in true proportion, typed in a proportional font, typed in a monospaced font, and in Pramuka slashes), three times each. We also score it on real pictures people have sent us.
- Real pictures. Six so far: a phone photo of a screen, typed morse with a caption under it, a chart with the letter beside each code, a logo with a letter to a row, and two more. It reads all six as drawn, including two drawn with mistakes in them.
- No characters wrong in every style on a clean picture, light on dark, grey on grey, small (16 px type), with 1 px of blur, with heavy grain, with the light falling off by half across the page, or turned by up to 6 degrees. The same with blur, grain, shade and a turn all at once.
- Blurred by 2 px. Our drawing and monospaced type still read clean; proportional type had 1.9% wrong. Pramuka slashes failed: the blur runs each slash into the marks beside it.
- Drawn by hand. None wrong with a steady hand. Where marks, dahs and gaps vary by around 30%, 18.5% of characters were wrong.
- Its confidence score. On the hand-drawn pictures, about half of the letters it scored under 20% were wrong, so check the dashed boxes by eye.
When it doesn’t read
- It finds no dots and dashes
- Crop the picture close to the morse and make sure the marks are clearly darker, or lighter, than the page. Pictures larger than 2,000 px are scaled down first, so very small marks in a large photo can vanish: crop instead of zooming out.
- Extra dits appear
- Full stops and the dots on i and j in text beside the morse can be read as dits. Crop the words out.
- Letters run together or split apart
- The gaps are too alike. When you write morse, leave three dits of space between letters and seven between words, or mark words with a slash.
- Dits and dahs are mixed up
- A dah should be about three times as long as a dit. If they are closer in length, or two dahs touch, redraw them, or fix the letter in the transcript.
- A photo reads worse than a screenshot
- Hold the phone straight above the page, in even light, and let it focus. Blur is the one thing it copes with least, above all with slashes.
Questions
Can you translate morse code from a picture?
Yes. Choose a photo or screenshot of morse and the decoder finds the dots and dashes, measures them and the gaps between them, and writes out the letters. It draws a box round each letter so you can check it.
Is my picture uploaded anywhere?
No. The picture is decoded in your browser, on your device. Nothing is sent to a server, and nothing is kept after you close the page.
Can it read handwritten morse?
Yes, if the marks stand apart and the dahs are clearly longer than the dits. On a loosely drawn page, where marks and gaps vary a lot, about one character in five came out wrong in our tests.
Does it read morse written with slashes?
Yes. It reads a slash between words, a slash or bar between every letter, and the Pramuka way of writing morse, with a slash between letters and two between words.
Can it read morse typed as text?
Yes. A screenshot of full stops and hyphens reads from 16 px type up. If you can copy the text instead, paste it into the morse code translator.
Can it read morse from a video or a flashing light?
Not here: it reads one still picture. For a flashing light or morse in a video, use the video decoder; for morse you can hear, the audio decoder.
More morse tools
- Morse code translator
Type text to hear it in morse, or paste morse to read it.
- Morse code audio decoder
Hold your microphone to morse, or choose a recording, to read it.
- Printable morse code chart
Every letter and number drawn to scale, to check a letter by eye.
Sources
- Codes and timing follow Recommendation ITU-R M.1677-1 (10/2009), International Morse code (International Telecommunication Union, 2009).