单颜色识别实验
前言
在上一章节中,已经了解了如何在CanMV下使用image模块实现快速线性回归计算的方法,本章将通过单颜色识别实验,介绍如何使用CanMV的find_blobs()方法实现单一颜色识别功能。在本实验中,我们将摄像头捕获的图像进行处理,查找图像中所有符合目标的色块,并将结果绘制并显示到显示器上。通过本章的学习,读者将学习到如何在CanMV下使用find_blobs()方法实现单一颜色识别的功能。
Image模块介绍
概述
Image 类是机器视觉处理中的基础对象。此类支持从Micropython GC、MMZ、系统堆、VB区域等内存区域创建图像对象。此外,还可以通过引用外部内存直接创建图像(ALLOC_REF)。未使用的图像对象会在垃圾回收时自动释放,也可以手动释放内存。
支持的图像格式如下:
- BINARY
- GRAYSCALE
- RGB565
- BAYER
- YUV422
- JPEG
- PNG
- ARGB8888(新增)
- RGB888(新增)
- RGBP888(新增)
- YUV420(新增)
支持的内存分配区域:
- ALLOC_MPGC:Micropython管理的内存
- ALLOC_HEAP:系统堆内存
- ALLOC_MMZ:多媒体内存
- ALLOC_VB:视频缓冲区
- ALLOC_REF:使用引用对象的内存,不分配新内存
API描述
Python中的Image模块是一个强大的图像处理工具,它提供了一系列函数和方法,可以用于图像元素绘制、图像滤波、图像特征检测、色块追踪、图像对比和码识别等。由于image模块功能强大,需要介绍的内容也比较多,因此本章仅介绍image模块中find_blobs()方法的使用。
find_blobs
image.find_blobs(thresholds[, invert=False[, roi[, x_stride=2[, y_stride=1[, area_threshold=10[, pixels_threshold=10[, merge=False[, margin=0[, threshold_cb=None[, merge_cb=None]]]]]]]]]])