bmcv_image_mosaic

该接口用于在图像上打一个或多个马赛克。

处理器型号支持:

该接口仅支持BM1684X。

接口形式:
bm_status_t bmcv_image_mosaic(
            bm_handle_t handle,
            int mosaic_num,
            bm_image input,
            bmcv_rect_t * mosaic_rect,
            int is_expand)

传入参数说明:

  • bm_handle_t handle

    输入参数。设备环境句柄,通过调用 bm_dev_request 获取。

  • int mosaic_num

    输入参数。马赛克数量,指 mosaic_rect 指针中所包含的 bmcv_rect_t 对象个数。

  • bm_image input

    输入参数。需要打马赛克的 bm_image 对象。

  • bmcv_rect_t* mosaic_rect

    输入参数。马赛克对象指针,包含每个马赛克起始点和宽高。具体内容参考下面的数据类型说明。

  • int is_expand

    输入参数。是否扩列。值为0时表示不扩列, 值为1时表示在原马赛克周围扩列一个宏块(8个像素)。

返回值说明:

  • BM_SUCCESS: 成功

  • 其他:失败

数据类型说明:

typedef struct bmcv_rect {
    int start_x;
    int start_y;
    int crop_w;
    int crop_h;
} bmcv_rect_t;
  • start_x 描述了马赛克在原图中所在的起始横坐标。自左而右从 0 开始,取值范围 [0, width)。

  • start_y 描述了马赛克在原图中所在的起始纵坐标。自上而下从 0 开始,取值范围 [0, height)。

  • crop_w 描述的马赛克的宽度。

  • crop_h 描述的马赛克的高度。

注意事项:

  1. 输入和输出的数据类型必须为:

num

data_type

1

DATA_TYPE_EXT_1N_BYTE

  • 输入的色彩格式可支持:

num

image_format

1

FORMAT_YUV420P

2

FORMAT_YUV444P

3

FORMAT_NV12

4

FORMAT_NV21

5

FORMAT_RGB_PLANAR

6

FORMAT_BGR_PLANAR

7

FORMAT_RGB_PACKED

8

FORMAT_BGR_PACKED

9

FORMAT_RGBP_SEPARATE

10

FORMAT_BGRP_SEPARATE

11

FORMAT_GRAY

如果不满足输入输出格式要求,则返回失败。

  1. 输入输出所有 bm_image 结构必须提前创建,否则返回失败。

  2. 如果马赛克宽高非8对齐,则会自动向上8对齐,若在边缘区域,则8对齐时会往非边缘方向延展。

  3. 如果马赛克区域超出原图宽高,超出部分会自动贴到原图边缘。

  4. 仅支持8x8以上的马赛克尺寸。