Skip Navigation

Computer Vision

Extract rich information from images to categorize and process visual data—and perform machine-assisted moderation of images to help curate your services.

Analyse an image

This feature returns information about visual content found in an image. Use tagging, domain-specific models and descriptions in four languages to identify content and label it with confidence. Apply the adult/racy settings to help you detect potential adult content. Identify image types and color schemes in pictures.

See it in action

Feature Name: Value
Description { "tags": [ "train", "platform", "station", "building", "indoor", "subway", "track", "walking", "waiting", "pulling", "board", "people", "man", "luggage", "standing", "holding", "large", "woman", "yellow", "suitcase" ], "captions": [ { "text": "people waiting at a train station", "confidence": 0.833099365 } ] }
Tags [ { "name": "train", "confidence": 0.9975446 }, { "name": "platform", "confidence": 0.995543063 }, { "name": "station", "confidence": 0.9798007 }, { "name": "indoor", "confidence": 0.927719653 }, { "name": "subway", "confidence": 0.838939846 }, { "name": "pulling", "confidence": 0.431715637 } ]
Image format "Jpeg"
Image dimensions 462 x 600
Clip art type 0
Line drawing type 0
Black and white false
Adult content false
Adult score 0.0147124995
Racy false
Racy score 0.0162802152
Categories [ { "name": "trans_trainstation", "score": 0.98828125 } ]
Faces []
Dominant color background
"Black"
Dominant color foreground
"Black"
Accent Color
#484C83

Want to build this?

Read text in images

Detect text in an image using optical character recognition (OCR) and extract the recognized words into a machine-readable character stream. Analyse images to detect embedded text, generate character streams and enable searching. Save time and effort by taking photos of text instead of copying it.

Get started with the OCR service in general availability and discover below a sneak peek of the new preview OCR engine (through "Recognise Text" API operation) with even better text recognition results for English.

See it in action

  1. Preview
  2. JSON

Sorry!

Have a

nice day !

Oops!

See you soon !

bye!

{
  "status": "Succeeded",
  "succeeded": true,
  "failed": false,
  "finished": true,
  "recognitionResult": {
    "lines": [
      {
        "boundingBox": [
          122,
          122,
          401,
          85,
          404,
          229,
          143,
          233
        ],
        "text": "Sorry!",
        "words": [
          {
            "boundingBox": [
              121,
              121,
              424,
              81,
              442,
              223,
              140,
              263
            ],
            "text": "Sorry!"
          }
        ]
      },
      {
        "boundingBox": [
          586,
          160,
          917,
          120,
          929,
          221,
          599,
          262
        ],
        "text": "Have a",
        "words": [
          {
            "boundingBox": [
              585,
              166,
              813,
              138,
              814,
              232,
              593,
              265
            ],
            "text": "Have"
          },
          {
            "boundingBox": [
              832,
              137,
              898,
              135,
              896,
              224,
              833,
              230
            ],
            "text": "a"
          }
        ]
      },
      {
        "boundingBox": [
          577,
          243,
          980,
          204,
          992,
          335,
          590,
          374
        ],
        "text": "nice day !",
        "words": [
          {
            "boundingBox": [
              575,
              265,
              757,
              237,
              765,
              342,
              583,
              353
            ],
            "text": "nice"
          },
          {
            "boundingBox": [
              774,
              234,
              934,
              211,
              941,
              339,
              782,
              341
            ],
            "text": "day"
          },
          {
            "boundingBox": [
              934,
              211,
              991,
              204,
              997,
              339,
              941,
              339
            ],
            "text": "!"
          }
        ]
      },
      {
        "boundingBox": [
          210,
          367,
          436,
          347,
          435,
          499,
          192,
          483
        ],
        "text": "Oops!",
        "words": [
          {
            "boundingBox": [
              192,
              368,
              452,
              345,
              466,
              495,
              205,
              519
            ],
            "text": "Oops!"
          }
        ]
      },
      {
        "boundingBox": [
          167,
          622,
          686,
          588,
          693,
          684,
          174,
          719
        ],
        "text": "See you soon !",
        "words": [
          {
            "boundingBox": [
              165,
              624,
              307,
              614,
              308,
              711,
              168,
              722
            ],
            "text": "See"
          },
          {
            "boundingBox": [
              300,
              614,
              442,
              606,
              441,
              702,
              302,
              712
            ],
            "text": "you"
          },
          {
            "boundingBox": [
              448,
              605,
              622,
              597,
              619,
              690,
              448,
              701
            ],
            "text": "soon"
          },
          {
            "boundingBox": [
              622,
              597,
              686,
              594,
              683,
              687,
              619,
              690
            ],
            "text": "!"
          }
        ]
      },
      {
        "boundingBox": [
          824,
          491,
          1010,
          482,
          1013,
          611,
          808,
          603
        ],
        "text": "bye!",
        "words": [
          {
            "boundingBox": [
              811,
              491,
              1034,
              480,
              1040,
              609,
              817,
              620
            ],
            "text": "bye!"
          }
        ]
      }
    ]
  }
}

Want to build this?

Preview: Read handwritten text from images

Detect and extract handwritten text from notes, letters, essays, whiteboards, forms and other sources. Reduce paper clutter and be more productive by taking photos of handwritten notes instead of transcribing them and make the digital notes easy to find by implementing search. Handwritten OCR works with different surfaces and backgrounds, such as white paper, yellow sticky notes, and whiteboards.

Note: This technology is currently in preview and is only available for English text.

See it in action

  1. Preview
  2. JSON

Our greatest glory is not

in never failing ,

but in rising every

time we fall

{
  "status": "Succeeded",
  "succeeded": true,
  "failed": false,
  "finished": true,
  "recognitionResult": {
    "lines": [
      {
        "boundingBox": [
          67,
          204,
          668,
          210,
          667,
          272,
          66,
          267
        ],
        "text": "Our greatest glory is not",
        "words": [
          {
            "boundingBox": [
              47,
              206,
              161,
              205,
              157,
              274,
              43,
              275
            ],
            "text": "Our"
          },
          {
            "boundingBox": [
              179,
              205,
              350,
              204,
              346,
              273,
              175,
              274
            ],
            "text": "greatest"
          },
          {
            "boundingBox": [
              381,
              204,
              509,
              203,
              505,
              272,
              377,
              273
            ],
            "text": "glory"
          },
          {
            "boundingBox": [
              526,
              203,
              588,
              203,
              584,
              272,
              522,
              272
            ],
            "text": "is"
          },
          {
            "boundingBox": [
              588,
              203,
              680,
              202,
              676,
              271,
              584,
              272
            ],
            "text": "not"
          }
        ]
      },
      {
        "boundingBox": [
          540,
          289,
          900,
          302,
          897,
          374,
          538,
          360
        ],
        "text": "in never failing ,",
        "words": [
          {
            "boundingBox": [
              507,
              300,
              553,
              300,
              564,
              376,
              518,
              376
            ],
            "text": "in"
          },
          {
            "boundingBox": [
              579,
              300,
              693,
              300,
              704,
              376,
              590,
              376
            ],
            "text": "never"
          },
          {
            "boundingBox": [
              712,
              300,
              872,
              300,
              883,
              376,
              723,
              376
            ],
            "text": "failing"
          },
          {
            "boundingBox": [
              864,
              300,
              902,
              300,
              913,
              376,
              875,
              376
            ],
            "text": ","
          }
        ]
      },
      {
        "boundingBox": [
          139,
          416,
          572,
          433,
          570,
          491,
          136,
          474
        ],
        "text": "but in rising every",
        "words": [
          {
            "boundingBox": [
              125,
              417,
              213,
              418,
              200,
              491,
              112,
              490
            ],
            "text": "but"
          },
          {
            "boundingBox": [
              217,
              418,
              273,
              418,
              260,
              491,
              204,
              491
            ],
            "text": "in"
          },
          {
            "boundingBox": [
              297,
              418,
              433,
              419,
              420,
              492,
              284,
              491
            ],
            "text": "rising"
          },
          {
            "boundingBox": [
              461,
              419,
              589,
              420,
              576,
              492,
              448,
              492
            ],
            "text": "every"
          }
        ]
      },
      {
        "boundingBox": [
          622,
          413,
          967,
          410,
          968,
          470,
          623,
          472
        ],
        "text": "time we fall",
        "words": [
          {
            "boundingBox": [
              612,
              407,
              718,
              409,
              709,
              470,
              603,
              468
            ],
            "text": "time"
          },
          {
            "boundingBox": [
              753,
              409,
              825,
              410,
              815,
              471,
              743,
              470
            ],
            "text": "we"
          },
          {
            "boundingBox": [
              863,
              410,
              973,
              412,
              964,
              472,
              853,
              471
            ],
            "text": "fall"
          }
        ]
      }
    ]
  }
}

Want to build this?

Recognise celebrities and landmarks

Recognize more than 200,000 celebrities from business, politics, sports and entertainment, as well as 9,000 natural and manmade landmarks from around the world.

See it in action

{
  "categories": [
    {
      "name": "people_",
      "score": 0.86328125,
      "detail": {
        "celebrities": [
          {
            "name": "Satya Nadella",
            "faceRectangle": {
              "left": 240,
              "top": 294,
              "width": 135,
              "height": 135
            },
            "confidence": 0.99999558925628662
          }
        ],
        "landmarks": null
      }
    }
  ],
  "adult": null,
  "tags": [
    {
      "name": "person",
      "confidence": 0.99956613779067993
    },
    {
      "name": "suit",
      "confidence": 0.98934584856033325
    },
    {
      "name": "man",
      "confidence": 0.98844343423843384
    },
    {
      "name": "outdoor",
      "confidence": 0.860062301158905
    }
  ],
  "description": {
    "tags": [
      "person",
      "suit",
      "man",
      "necktie",
      "outdoor",
      "building",
      "clothing",
      "standing",
      "wearing",
      "business",
      "looking",
      "holding",
      "black",
      "front",
      "hand",
      "dressed",
      "phone",
      "field"
    ],
    "captions": [
      {
        "text": "Satya Nadella wearing a suit and tie",
        "confidence": 0.9903275009959599
      }
    ]
  },
  "requestId": "db972db9-3c07-4a88-a7c6-57fe9f9e74b9",
  "metadata": {
    "width": 600,
    "height": 900,
    "format": "Jpeg"
  },
  "faces": [
    {
      "age": 48,
      "gender": "Male",
      "faceRectangle": {
        "left": 240,
        "top": 294,
        "width": 135,
        "height": 135
      }
    }
  ],
  "color": {
    "dominantColorForeground": "Black",
    "dominantColorBackground": "Black",
    "dominantColors": [
      "Black",
      "Grey"
    ],
    "accentColor": "7B5E50",
    "isBWImg": false
  },
  "imageType": {
    "clipArtType": 0,
    "lineDrawingType": 0
  }
}

Want to build this?

Analyse video in near real-time

Analyse video in near real-time Use any of the Computer Vision APIs with you video files by extracting frames of the video from your device and then sending those frames to the API calls of your choice. Get results from your videos faster.

Use our sample on GitHub to get started and build your own app.

Learn More

See it in action

Want to build this?

Generate a thumbnail

Generate a high-quality storage-efficient thumbnail based on any image and modify images to best suit your needs for size, shape and style. Apply smart cropping to generate thumbnails that differ from the aspect ratio of your original image, yet preserve the region of interest.

See it in action

Want to build this?

Explore the Cognitive Services APIs

Computer Vision

Distill actionable information from images

Face

Detect, identify, analyze, organise, and tag faces in photos

Video Indexer PREVIEW

Unlock video insights

Content Moderator

Automated image, text and video moderation

Custom Vision PREVIEW

Easily customize your own state-of-the-art computer vision models for your unique use case

Text Analytics

Easily evaluate sentiment and topics to understand what users want

Translator Text

Easily conduct machine translation with a simple REST API call

Bing Spell Check

Detect and correct spelling mistakes in your app

Content Moderator

Automated image, text and video moderation

Language Understanding

Teach your apps to understand commands from your users

Bing Speech

Convert speech to text and back again to understand user intent

Speaker Recognition PREVIEW

Use speech to identify and verify individual speakers

Translator Speech

Easily conduct real-time speech translation with a simple REST API call

Custom Speech PREVIEW

Overcome speech recognition barriers like speaking style, background noise and vocabulary

Speech Services PREVIEW

Unified speech services for speech-to-text, text-to-speech and speech translation

QnA Maker

Distill information into conversational, easy-to-navigate answers

Ready to supercharge your app?