Skip to content
Morse CodePart 27 of 29
Morse CodeRadioLearning

Reading Morse Code From a Photo or a Printed Chart

A photo of printed text converts to Morse in one step; a photo of dots and dashes does not. How to scan text, read the gaps by eye, and check a chart photo.

By Bimal Khatri·16 min read·Aug 12, 2026
Reading Morse Code From a Photo or a Printed Chart

A picture can hold two completely different things, and which one you have decides what to do next. If the photo shows ordinary words (a page, a sign, a label) a phone can read the letters and convert them to Morse in one step. If the photo shows dots and dashes, no camera reads that reliably, and the fastest honest route is to transcribe the marks with your own eyes and type them in.

The reason is the spacing. In a printed line of Morse the message lives as much in the white space as in the ink, and text recognition is built to tidy white space away. It collapses runs of spaces, joins a line that wrapped, and turns three dots into a single ellipsis glyph. Everything it does to make normal prose readable destroys Morse.

So there are two jobs: photographing text well enough for a machine to convert it, and reading dots and dashes off an image yourself. Both are below.

Want to point your camera at a printed page and get Morse back? MorseLab reads printed text from the camera or your gallery and converts it, free and offline.

Two pictures, two jobs

Look at what is in the frame.

What the photo showsWhat you want out of itWho does it better
Printed words, a sign, a labelThe same words, in MorseA phone, easily
A screenshot of typed dots and dashesThe text behind themYou, by retyping
A printed Morse chartA lookup table you can trustYou, by reading it
Dots and dashes on a bracelet or a tattooThe word it spellsYou, mark by mark
Beeps in a video, not a still imageThe textAn audio decoder

That last row matters: a video or a voice note needs something measuring the sound, not a picture tool. That is a different problem.

What survives a photograph, and what does not

Morse is a shape in time; a picture is a shape in space. The conversion is lossy, and knowing what leaks out saves a lot of arguing with software.

In the soundHow it appears in printSurvives a photo
Dot, 1 unita short markYes
Dash, 3 unitsa mark three times as longYes
Gap inside a letter, 1 unitmarks nearly touchingUsually
Gap between letters, 3 unitsone clear spaceOften lost
Gap between words, 7 unitsa wide space, or a slashOften lost
Speed in words per minutenothing at allNo
Pitch of the tonenothing at allNo, and it never carried anything

The two marks come through fine. The three silences get damaged, and they are half the code. Written down, a dot is a full stop and a dash a hyphen, letters are separated by one space and words by a slash, so .... . .-.. .-.. --- / .-- --- .-. .-.. -.. is HELLO WORLD. Move the gaps and the same ink says something else.

Case one: a photo of ordinary text

This is the easy direction, and what most people mean by scanning to Morse. The phone recognises the letters, then each one is looked up in a fixed table. There is no guessing in the second half: every character has exactly one pattern.

Take a photo of a boarding pass reading GATE 12, character by character:

G     --.
A     .-
T     -
E     .
      /
1     .----
2     ..---

Run together, one space between letters and a slash between words:

--. .- - . / .---- ..---

Case makes no difference. Morse has no capitals, so a sign reading "Gate 12" and one reading "GATE 12" give the same string.

The failures in this direction are photography, not translation:

  • Square on, not at an angle. A sheared line confuses the recogniser and, on a chart, makes you read across into the wrong column.
  • Fill the frame, and crop to one column. Two columns photographed together get interleaved into nonsense.
  • Even light, no flash on glossy paper. A hotspot erases a whole word and you will not notice which one.
  • Printed beats handwritten, and a screenshot beats a photo of a screen.

Characters the code has no entry for still have nowhere to go. The standard covers 26 Latin letters, ten digits and 16 punctuation marks. An accented letter, a non-Latin script or an emoji has no correct output, so romanise it yourself rather than let a tool decide silently.

Case two: a photo of dots and dashes

Now the hard direction. Text recognition is trained on language, so shown a line with no words in it, it reaches for the nearest thing it knows: punctuation.

On the pageWhat recognition often returnsWhat it costs you
Three dots ...one ellipsis glyphthree elements become one character
Two dashes --one em dashthe same problem, for M
One dash -an underscore, or an en dashthe mark stops being a dash
One dot .a comma, or a middotthe mark stops being a dot
A wide word spaceone ordinary spaceletter gaps and word gaps merge
A line that wrappeda space, or nothinga word gap appears or vanishes
A slash between wordsthe digit 1, or nothingthe word boundary is gone

Every one of those looks right on screen and decodes nowhere. If a scanned string gives you gibberish, retype it with a plain full stop and a plain hyphen before blaming the tool. That habit fixes most "the translator is broken" complaints; the translator guide covers the substitutions.

The glyphs are not the deeper problem, though. Even a perfect transcription of the marks is not a message until you transcribe the gaps too.

Reading the gaps out of a picture

Well-set printed Morse keeps the proportions of the sound: a narrow gap inside a letter, one about three times that between letters, and a wide one or a slash between words.

  1. Look for slashes first. If the string uses / between words, every remaining space is a letter gap and you are done.
  2. If there are none, measure. Find the narrowest gap and treat it as your unit. Gaps that wide sit inside a letter, gaps about three times wider separate letters, and anything much wider is a word.
  3. Check the reading against real words. If your split produces QXZ, the split is wrong, not the message.

When the gaps have genuinely gone, the string cannot be decoded, only guessed at. Here is one run of five marks with the spacing changed and nothing else:

.-...        &          one character, the ampersand
.- ...       A S
.-. ..       R I
.-.. .       L E
. -...       E B
.-. . .      R E E
. -.. .      E D E
. -. ..      E N I
. - ...      E T S
.- .. .      A I E
.- . ..      A E I
. -. . .     E N E E
. - .. .     E T I E
. - . ..     E T E I
.- . . .     A E E E
. - . . .    E T E E E

Sixteen readings, identical ink, different white space, and nothing in the marks says which one was meant. A photo that flattened those gaps threw the message away, and no software recovers it.

A worked transcription

Say the photo shows this line, and the spacing came through cleanly:

.-. . .- -.. / - .... . / --. .- .--. ...

Split at the spaces, look each group up, and put a real space where the slash is.

.-.     R
.       E
.-      A
-..     D
/       word gap
-       T
....    H
.       E
/       word gap
--.     G
.-      A
.--.    P
...     S

That reads READ THE GAPS.

Now put the time back, because a picture has none. Everything is measured in units, one unit being the length of a dot: a dash is 3, the gap inside a letter 1, between letters 3, between words 7. Counting every mark and silence, READ THE GAPS is 99 units long. Speed is quoted in words per minute against the reference word PARIS, and one piece of arithmetic converts it:

Dot length in seconds = 1.2 ÷ WPM.

SpeedDot lengthTime to send READ THE GAPS
5 WPM240 ms23.8 s
12 WPM100 ms9.9 s
20 WPM60 ms5.9 s
25 WPM48 ms4.8 s

Same picture, same 99 units, five times the difference in how long it takes to hear. Morse code timing and WPM works the ratio through properly.

Photographing a printed chart

A photo of a wall chart or a handbook page is a lookup table you carry around. It has two traps.

The column trap. Most printed charts run A to M down the left and N to Z down the right. Photographed at a slight angle the rows shear and you read straight across from A into N. Calibrate on characters you already know:

CharacterCodeWhy it is a good check
E.one dot, the shortest thing in the code
T-one dash
S...three dots
O---three dashes
H....four dots, the most in any single letter
0-----five dashes, the longest digit to send

The wrong-code trap. An old chart in a museum, a family document or a railway handbook may be American or railroad Morse, an older code with internal gaps inside some characters. It is obsolete and nothing modern decodes it. If a photographed chart shows gaps inside characters, or its patterns do not match the table below, no translator will help.

Letters

LetterCodeLetterCode
A.-N-.
B-...O---
C-.-.P.--.
D-..Q--.-
E.R.-.
F..-.S...
G--.T-
H....U..-
I..V...-
J.---W.--
K-.-X-..-
L.-..Y-.--
M--Z--..

Digits

DigitCodeDigitCode
1.----6-....
2..---7--...
3...--8---..
4....-9----.
5.....0-----

Every digit is five elements, without exception, and that is the fastest check on a photographed chart: a digit showing four marks has been misread off the image, or the chart itself is wrong. Numbers and punctuation works through the pattern behind the row.

What a phone can and cannot do with a picture

Text recognition on a modern phone runs on the device, needs no connection, and is good at printed words and poor at rows of punctuation. That bounds every tool you will try, mine included.

I built MorseLab so its scan works inside that limit instead of pretending past it. Point the camera at printed text, or pick a photo out of your gallery, and the on-device recogniser reads the words and converts them to Morse, playable as a tone, a flashlight blink, a screen flash or a vibration. What it will not do is claim to read a photograph of dots and dashes, because nothing reads those gaps reliably. For that direction you transcribe the marks and paste the string into the translator. It also carries the chart, prosigns and Q-codes, decodes live Morse audio through the microphone, and runs offline with no account in 16 languages.

When the Morse is not printed at all

Plenty of pictures carry Morse without a single dot on them: bracelets of round and long beads, engraved rings, tattoos of bars and circles, escape-room props. The code is the same. Work out which shape is short and which is long, then read as usual. A bracelet spelling LOVE looks like this:

Beads, in orderDots and dashesLetter
round, long, round, round.-..L
long, long, long---O
round, round, round, long...-V
round.E

Two warnings.

The gaps are usually missing. Spacer beads between letters make a decodable object. Evenly strung beads do not, and that piece has as many readings as the ampersand above. It may also be decorative, with no message in it.

A picture can be the wrong way round. Photograph a bracelet from the other side, or rotate an image, and you read the marks in reverse. A dot upside down is still a dot, so a reversed string is often still valid and completely different. BAG read backwards is WNV. These are the pairs that swap:

Read one wayRead the other
A .-N -.
B -...V ...-
D -..U ..-
F ..-.L .-..
G --.W .--
Q --.-Y -.--
1 .----9 ----.
2 ..---8 ---..
3 ...--7 --...
4 ....-6 -....

E, H, I, K, M, O, P, R, S, T, X, 5 and 0 read the same either way, and C, J and Z reverse into nothing at all. That last part is the tell, and it works the opposite way round to how people expect: a backwards reading never produces a C, a J or a Z. It stops dead on them instead, because their reversals are not characters. So if one group in a string refuses to decode, read it from the other end before deciding the marks are wrong.

Copy these

Ready to paste, with a real full stop and a real hyphen throughout, one space between letters and a slash between words.

LOVE        .-.. --- ...- .
MOM         -- --- --
DAD         -.. .- -..
HOPE        .... --- .--. .
FAMILY      ..-. .- -- .. .-.. -.--
BREATHE     -... .-. . .- - .... .
STRENGTH    ... - .-. . -. --. - ....
1998        .---- ----. ----. ---..
SOS         ...---...

Look at the last line. SOS has no gaps in it, and that is deliberate: it is a prosign, one unbroken run of three dots, three dashes and three dots, not the three separate letters ... --- ..., which is a different signal. It does not stand for "Save Our Souls" either; that was fitted to it afterwards. And it reads the same forwards and backwards, so a picture of it cannot be turned round into something else. SOS in Morse code has the rest, and your own name works the same way, one letter at a time.

Common mistakes

Expecting a camera to read dots and dashes. It reads words. Shown punctuation with no language behind it, it substitutes the nearest glyph it knows and ruins the string.

Trusting a scan you have not retyped. Ellipses, em dashes, underscores and middots all look correct at a glance. Retype with a plain . and a plain - first.

Decoding a string whose spacing has collapsed. The five marks of .-... read sixteen different ways once the gaps are gone, and there is no clever way round it.

Reading a chart photo across the columns. Check E, T, S and O first. If they are right, your row tracking is right.

Assuming an old printed chart is the international code. Gaps inside characters mean the obsolete American code, which nothing modern reads.

Thinking a picture contains a speed. It does not. Time exists only once you choose a dot length, and a dot in seconds is 1.2 divided by your words per minute.

Questions people ask

Can you translate Morse code from a picture?

Partly. A picture of printed text converts easily, because a phone reads the words and the lookup after that is fixed. A picture of dots and dashes is harder: the marks read fine, but the spacing that separates letters from words usually does not survive, and the spacing is half the code.

Is there an app that scans Morse code with the camera?

Yes, for printed text: the camera reads the words and the app converts them. Be careful with any tool claiming to read a photograph of dots and dashes. Unless the gaps are wide and even it is guessing, and it will not say so.

Why does my scanned Morse come out as an ellipsis and an em dash?

Because text recognition is correcting you. Three dots become one ellipsis character and two hyphens one em dash, since that is what those shapes mean in ordinary writing. Retype the line with plain full stops and hyphens.

How do I tell where a word ends in a photo of Morse code?

Look for a slash first, since most typed Morse uses one. Failing that, find the narrowest gap and use it as your unit: gaps about three times wider separate letters, and anything much wider is a word boundary. If the split produces letter salad, the split is wrong.

How do I read the Morse code on a bracelet or a tattoo?

Decide which shape is the short mark and which the long one, then read from one end and look each group up. The problem is almost always the gaps: if the maker used no spacer beads between letters, the piece has several valid readings and only they know which was meant.

Can Morse code be decoded from a photo if the spacing is gone?

No. Without the gaps, .-... is the ampersand, or AS, or RI, or LE, or EB, or ETS, or ten more besides: sixteen readings, every one legitimate. A tool returning one answer is picking, not decoding.

How should I photograph a Morse chart so I can read it later?

Square on, filling the frame, in even light, one column at a time, no flash on glossy paper. Then check E ., T -, S ... and O --- against the photo. If those four are right, the chart and your eye agree.

Does any of this need an internet connection?

No. Text recognition runs on the phone, and the code is one small table: 26 letters, ten digits and 16 punctuation marks. Scanning, converting and playback all work with no signal, and the reverse direction needs nothing online either.

Want to try it now? MorseLab is free on iPhone and Android.

Keep reading

More writing

Keep reading