...
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 | ||
---|---|---|
| ||
'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 | ||
---|---|---|
| ||
'http://127.0.0.1:8000/analyze_image?data=SomeInfo' |
In Code module you can access this string using:
Code Block | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
'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 | ||||
---|---|---|---|---|
| ||||
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 | ||
---|---|---|
| ||
'http://127.0.0.1:8000/analyze_image |
...
Data
...
' |
Example with API key
Code Block | ||
---|---|---|
| ||
'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 | ||||
---|---|---|---|---|
| ||||
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.
...