recognizes a molecule in image and returns it as a Molecule object.


  • MoleculeRecognize works with grayscale and color images.
  • Hydrogen atoms not explicitly included in the image are not added to the resulting molecule, but are instead treated as implicit. MoleculeModify["AddHydrogens"][mol] can be used to make them explicit for the molecule mol.
  • image should contain one or more 2D structure diagrams, returning a single Molecule object. Use ConnectedMoleculeComponents to retrieve the individual molecules.
  • Coordinates detected from the image are stored in the AtomDiagramCoordinates option in the returned expression.
  • Stereochemistry depicted by wedged and dashed bonds is automatically detected and stored in the StereochemistryElements option.


open allclose all

Basic Examples  (2)

Recognize a molecule in an image:

Use MoleculePlot to visualize the result:

Recognize multiple molecules in an image:

Scope  (4)

Detect a molecule in a grayscale image:

This works equally well with a dark background:

The resulting molecules are equivalent:

Detect a molecule in a color image:

Common functional group abbreviations are recognized and expanded:

Delocalized electrons represented as a circle are detected:

Introduced in 2020