Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Find a practical API demonstration in Python at GitHub Image Analyze API.

IP Address

If the project runs on a local computer, the address is 127.0.0.1. If a remote computer is accessed, then you need to use the IP address of the remote computer.

Port

This is selected when starting the project.

API Key

If the project is running with “Secure image analyze” option enabled, each request in the parameter query must contain the API key that is generated after you enable this option.

...

Code Block
languagepy
'http://127.0.0.1:8000/analyze_image?api_key=553d7790-827c-11ec-978b-6da1176c0b00'

Data

You can add extra information to the request. This string will be added to the context (key is data). It is available only in the Code module (context variable).

Code Block
languagepy
'http://127.0.0.1:8000/analyze_image?data=SomeInfo'

In Code module you can access this string using:

Code Block
languagepy
context['data']

Types

analyze_raw_image

Used for sending the image as raw data. For example, the numpy array in Python is converted to binary format.

You need to send the image dimensions in query parameters width and height.

Example of a 1920x1024 image:

Code Block
languagepy
'http://127.0.0.1:8000/analyze_raw_image?width=1920&height=1024'

If you are sending Bayer RG 8 data, it is necessary to add an argument bayer.

Code Block
languagepy
'http://127.0.0.1:8000/analyze_raw_image?width=1920&height=1024&bayer'

Example of a Python code sending requests with raw images from camera:

Code Block
breakoutModewide
languagepy
import cv2
import requests

cap = cv2.VideoCapture(0)

# you can set frame size
# cap.set(cv2.CAP_PROP_FRAME_WIDTH, 960)
# cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 540)

# keep alive
request_session = requests.Session()

while True:
    # get frame from camera
    ret, frame = cap.read()

    # get image shape
    shape = frame.shape

    # send frame to PEKAT VISION
    response = requests.post(
        url='http://127.0.0.1:8000/analyze_raw_image?width='+str(shape[1])+'&height='+str(shape[0]),
        data=frame.tobytes(),
        headers={'Content-Type': 'application/octet-stream'}
    )

    print(response.json())

IP Address

If the project runs on a local computer, the address is 127.0.0.1. If a remote computer is accessed, then you need to use the IP address of the remote computer.

Port

This is selected when starting the project.

API Key

If the project is running with “Secure image analyze” option enabled, each request in the parameter query must contain the API key that is generated after you enable this option.

...

analyze_image

Is used for sending an image in ‘jpg’ or ‘png’ formats.

Basic example

Code Block
languagepy
'http://127.0.0.1:8000/analyze_image

...

Data

...

'

Example with API key

Code Block
languagepy
'http://127.0.0.1:8000/analyze_image?width=1920&height=1024&data=SomeInfo'

...

api_key=SUPER_SECRET'

Example of sending images from a folder to Pekat with API key:

Code Block
breakoutModewide
languagepy
context['data']

Types

analyze_raw_image

Used for sending the image as raw data. For example, the numpy array in Python is converted to binary format.

You need to send the image dimensions in query parameters width and height.

Example of a 1920x1024 image:

Code Block
'http://127.0.0.1:8000/analyze_raw_image?width=1920&height=1024'

If you are sending Bayer RG 8 data, it is necessary to add an argument bayer.

Code Block
import requests
import os

request_session = requests.Session()

for image in os.listdir('images_folder'):
    with open(os.path.join('images_folder', image), 'rb') as image:
        response = requests.post(
            url='http://127.0.0.1:8000/analyze_raw_image?width=1920&height=1024&bayer'

analyze_image

For sending an image in ‘jpg’ or ‘png’ formats. - PASS THROUGH THE FLOW,TRAINED MODELS…

Example

Code Block
'http://127.0.0.1:8000/analyze_image'

Example with API key

Code Block
'http://127.0.0.1:8000/analyze_image?api_key=SUPER_SECRET'api_key=728a9180-8357-11ec-b645-e917eb5f5d27',
            data=image.read(),
            headers={'Content-Type': 'application/octet-stream'}
        )
        
        print(response.json())

Response

Query parameter ‘response_type’ determines the response type.

...