import os
import sys
import requests
%matplotlib inline
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from PIL import Image
from io import BytesIO
Add your Computer Vision subscription key and endpoint to your environment variables.
if '-' in os.environ:
subscription_key = os.environ['-']
else:
print("\nSet the COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.\nRestart your shell or IDE for changes to take effect.")
sys.exit()
if 'https://visionapic.cognitiveservices.azure.com/' in os.environ:
endpoint = os.environ['https://visionapic.cognitiveservices.azure.com/']
ocr_url = endpoint + "vision/v3.0/ocr"
Set image_url to the URL of an image that you want to analyze.
image_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png"
headers = {'Ocp-Apim-Subscription-Key': subscription_key}
params = {'language': 'unk', 'detectOrientation': 'true'}
data = {'url': image_url}
response = requests.post(ocr_url, headers=headers, params=params, json=data)
response.raise_for_status()
analysis = response.json()
Extract the word bounding boxes and text.
line_infos = [region["lines"] for region in analysis["regions"]]
word_infos = []
for line in line_infos:
for word_metadata in line:
for word_info in word_metadata["words"]:
word_infos.append(word_info)
word_infos
Display the image and overlay it with the extracted text.
plt.figure(figsize=(5, 5))
image = Image.open(BytesIO(requests.get(image_url).content))
ax = plt.imshow(image, alpha=0.5)
for word in word_infos:
bbox = [int(num) for num in word["boundingBox"].split(",")]
text = word["text"]
origin = (bbox[0], bbox[1])
patch = Rectangle(origin, bbox[2], bbox[3],
fill=False, linewidth=2, color='y')
ax.axes.add_patch(patch)
plt.text(origin[0], origin[1], text, fontsize=20, weight="bold", va="top")
plt.show()
plt.axis("off")
i put key still i get error like
Set the COMPUTER_VISION_SUBSCRIPTION_KEY environment variable.
Restart your shell or IDE for changes to take effect.