下载
中文
注册

图片编码

功能介绍

将接口输出的Image对象编码为JPG格式的图片保存到指定的图片路径。

接口调用流程

用户可以通过调用图片解码以及图像处理接口(抠图、缩放、补边等操作对应接口),得到待编码的Image对象,通过调用ImageProcessor类的Encode接口输出到内存或者保存到本地

图片编码调用流程参考如下:

图1 图片编码接口调用流程

关键步骤说明如下:

  1. 调用mx_init()接口进行全局初始化。
  2. ImageProcessor初始化。

    用户构造ImageProcessor对象,构造时需用户指定设备ID。

  3. 使用图片解码接口对输入图片进行解码。

    根据业务对图片进行解码,生成可编码的Image对象。后续可以通过图像处理接口对图片进行处理,生成最终需要编码的Image对象。

  4. 调用encode接口对输入图片进行编码。

    用户需根据实际业务情况输出图片数据,指定待输出的Image和输出路径。

  5. 调用mx_deinit()接口进行去初始化。

示例代码

以下为功能特性关键步骤的代码示例,不可以直接拷贝运行,仅供参考。
from mindx.sdk import base  
from mindx.sdk.base import ImageProcessor, Rect, Image

def process():
    # 图像解码  
    # 初始化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) 

if __name__ == "__main__":
    base.mx_init()     # 资源初始化
    process()
    base.mx_deinit()   # 资源去初始化