开发流程
开发流程
流程介绍
图1 API开发流程

关键步骤说明
- 使用mxVision接口进行应用开发,需首先进行初始化才能进行后续处理,具体请参见初始化。
- 媒体数据处理/模型推理。
父主题: 使用API接口方式开发(Python)
初始化
功能介绍
mxVision应用开发初始化接口,在代码调用相关接口之前,需调用全局初始化函数mx_init()申请设备资源和日志资源。
示例代码
以下为初始化方法的代码示例,不可以直接拷贝运行,仅供参考。
全局初始化,加载设备资源和日志资源。
from mindx.sdk import base
base.mx_init()
## 执行全局初始化后即可正常调用mxVision接口
父主题: 使用API接口方式开发(Python)
图片解码
功能介绍
通过对输入图片数据进行解码处理,将本地图片转换为Image类,用于后续前处理和推理业务,类型目前支持JPEG和PNG格式。
接口调用流程
用户需准备好本地待解码的图片文件,初始化ImageProcessor类,通过调用ImageProcessor类的decode接口解码返回输出的Image对象。
图片解码调用流程参考如下:
图1 图片解码接口调用流程

关键步骤说明如下:
-
调用mx_init()接口进行全局初始化。
-
ImageProcessor初始化。
用户构造ImageProcessor对象,构造时需用户指定设备ID。
-
调用decode接口对图片进行解码。
用户需根据解码的不同需要,传入对应格式参数到decode接口。
示例代码
以下为功能特性关键步骤的代码示例,不可以直接拷贝运行,仅供参考。
from mindx.sdk import base
from mindx.sdk.base import ImageProcessor, Image
## 图像解码
## 初始化ImageProcessor对象
imageProcessor = ImageProcessor(device_id)
image_path = "test_image.jpg"
## 读取图片路径进行解码,解码格式为nv12(YUV_SP_420)
decoded_image = imageProcessor.decode(image_path, base.nv12)
父主题: 媒体数据处理
图片编码
功能介绍
将接口输出的Image对象编码为JPG格式的图片保存到指定的图片路径。
接口调用流程
用户需提前准备好待编码的Image对象,可以通过图片解码以及图像处理接口(抠图、缩放、补边等操作对应接口)输出,输出到本地图片。
图片编码调用流程参考如下:
图1 图片编码接口调用流程

关键步骤说明如下:
-
调用mx_init()接口进行全局初始化。
-
ImageProcessor初始化。
用户构造ImageProcessor对象,构造时需用户指定设备ID。
-
使用图片解码接口对输入图片进行解码。
根据业务对图片进行解码,生成可编码的Image对象。后续可以通过图像处理接口对图片进行处理,生成最终需要编码的Image对象。
-
调用encode接口对输入图片进行编码。
用户需根据实际业务情况输出图片数据,指定待输出的Image和输出路径。
示例代码
以下为功能特性关键步骤的代码示例,不可以直接拷贝运行,仅供参考。
from mindx.sdk import base
from mindx.sdk.base import ImageProcessor, Rect, Image
## 图像解码
## 初始化ImageProcessor对象
imageProcessor = ImageProcessor(device_id)
image_path = "image_data/test_image.jpg"
## 读取图片路径进行解码,解码格式为nv12(YUV_SP_420)
decoded_image = imageProcessor.decode(image_path, base.nv12)
## 图像处理操作(抠图)
crop_para = [Rect(300, 100, 550, 350)]
croped_images = imageProcessor.crop(decoded_image, crop_para)
image_save_path = "croped_image.jpg"
imageProcessor.encode(croped_images[0], image_save_path)
父主题: 媒体数据处理
抠图
功能介绍
对输入的图像进行抠图操作,输出到Image对象中。
接口调用流程
使用抠图接口前,用户需准备好被抠图的图片对象。
图1 图像处理(抠图)接口调用流程

关键步骤说明如下:
-
调用mx_init()接口进行全局初始化。
-
ImageProcessor初始化。
用户构造ImageProcessor对象,构造时需用户指定设备ID。
-
使用图片解码接口对输入图片进行解码。
根据业务对图片进行解码,生成可抠图的Image对象。后续可以通过图像处理接口对图片进行处理,生成最终需要抠图的Image对象。
-
构造抠图Rect以及输出Image。
根据业务要求,选择一对多、一对一或多对多的抠图方式,构造对应的输入和输出Rect和Image。
-
将输入图片及其他参数传入crop接口,获取抠图结果。
示例代码
以下为功能特性关键步骤的代码示例,不可以直接拷贝运行,仅供参考。
from mindx.sdk import base
from mindx.sdk.base import ImageProcessor, Rect, Image
## 图像解码
## 初始化ImageProcessor对象
imageProcessor = ImageProcessor(device_id)
image_path = "image_data/test_image.jpg"
## 读取图片路径进行解码,解码格式为nv12(YUV_SP_420)
decoded_image = imageProcessor.decode(image_path, base.nv12)
## 图像处理操作(抠图)
crop_para = [Rect(300, 100, 550, 350)]
croped_images = imageProcessor.crop(decoded_image, crop_para)
父主题: 媒体数据处理
在线提单