缩放

功能介绍

对输入的图像进行缩放操作,输出到Image对象中。

接口说明请参考resize

接口调用流程

使用缩放接口前,用户需准备好被缩放的图片对象。

图1 图像处理(缩放)接口调用流程

关键步骤说明如下:

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

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

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

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

  4. 构造缩放参数和输出Image。

    根据业务要求,构造对应的输入Size和输出Image。

  5. 将输入图片及其他参数传入resize接口,获取缩放结果。
  6. 调用mx_deinit()接口进行去初始化。

示例代码

以下为功能特性关键步骤的代码示例,不可以直接拷贝运行,仅供参考。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
from mindx.sdk import base  
from mindx.sdk.base import ImageProcessor, Size, 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)  
    
    # 图像缩放  
    # 缩放尺寸  
    size_para = Size(224, 224)  
    # 读取将解码后的Image类按尺寸进行缩放,缩放方式为华为自研的高阶滤波算法(huaweiu_high_order_filter)
    resized_image = imageProcessor.resize(decoded_image, size_para, base.huaweiu_high_order_filter)

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