3.9 image 图像处理 API手册
移植于openmv,与openmv功能相同,详细请参考官方文档,以下仅列出与官方API的差异部分及新增API。
1. 类 Image
图像对象是机器视觉操作的基本对象。 image支持从micropython gc,mmz,heap,vb区域创建,REF为在参考对象内存上直接生成image。 未使用的image对象会在执行gc回收时自动释放,用户也可手动执行释放,此时申请的图像内存会立即归还到系统。
image支持的格式:
- BINARY
- GRAYSCALE
- RGB565
- BAYER
- YUV422
- JPEG
- PNG
- ARGB8888 (新增格式)
- RGB888 (新增格式)
- RGBP888 (新增格式)
- YUV420 (新增格式)
image支持的分配区域:
- ALLOC_MPGC:micropython管理的内存
- ALLOC_HEAP:系统堆内存
- ALLOC_MMZ:多媒体内存
- ALLOC_VB:视频缓冲区
- ALLOC_REF:不分配内存,使用参考对象内存
1.1 构造函数
class image.Image(path, alloc=ALLOC_MMZ, cache=True, phyaddr=0, virtaddr=0, poolid=0, data=None)
从path中的文件创建一个图像对象,支持bmp/pgm/ppm/jpg/jpeg格式的图像文件。
class image.Image(w, h, format, alloc=ALLOC_MMZ, cache=True, phyaddr=0, virtaddr=0, poolid=0, data=None)
创建一个指定大小格式的图像对象。
- w: 图像宽度
- h: 图像高度
- format: 图像格式
- alloc: 图像创建内存位置,可选参数,默认ALLOC_MMZ
- cache: 使能内存cache,可选参数,默认True
- phyaddr: 图像数据的物理内存地址,仅在VB区域中创建有效
- virtaddr: 图像数据的虚拟内存地址,仅在VB区域中创建有效
- poolid: VB poolid,仅在VB区域中创建有效,可选参数
- data: 参考对象,可用于初始化image数据,可选参数
示例:
# 在MMZ区域创建一个ARGB8888 640*480的图像:
img = image.Image(640,480,image.ARGB8888)
# 在VB区域创建一个YUV420 640*480的图像:
img = image.Image(640,480,image.YUV420,alloc=image.ALLOC_VB,phyaddr=xxx,virtaddr=xxx,poolid=xxx)
# 使用REF创建一个RGB888 640*480的图像:
img = image.Image(640,480,image.RGB888,alloc=image.ALLOC_REF,data=buffer_obj)
img = image.Image(640,480,image.RGB888,alloc=image.ALLOC_REF,data=ulab_obj)
# 立即释放图像内存
del img
gc.collect()