k210学习篇(九) image图像处理

本文介绍了如何在K210上进行图像处理,特别是使用image模块的find_blobs函数来寻找特定颜色的色块。文章详细讲解了find_blobs函数的输入参数和返回值,并给出了代码示例,包括如何绘制图像、点、线段等,以及如何设置阈值和ROI来优化颜色追踪。
摘要由CSDN通过智能技术生成

前言        

        这个模块是移植于 openmv, 与 openmv 功能相同,这个模块经常用来进行一些颜色追踪,色块查找之类的(比如识别黑色,传回坐标让小车寻线,或者是识别其他颜色的线)。记得这里要先把sensor配置好,毕竟你要进行图像处理,那么你采集的图像信息也不能偏差很多。这里我们着重于 image 模块中的一个函数 find_blobs 也就是寻找色块的函数。在讲找色块的函数之前,我们先讲下绘制函数。

image绘制相关API

1.绘制图片

image.draw_image(image, x, y[, x_scale=1.0[, y_scale=1.0[, mask=None[, alpha=256]]]])

绘制一个 image ,其左上角从位置x,y开始。 您可以单独传递x,y,也可以传递给元组(x,y)。

x_scale 控制图像在x方向(浮点数)缩放的程度。

y_scale 控制图像在y方向(浮点数)缩放的程度。

2.绘制点

image.draw_keypoints(keypoints[, color[, size=10[, thickness=1[, fill=False]]]])

在图像上画出一个特征点对象的各个点。

  1. color 是用于灰度或RGB565图像的RGB888元组。默认为白色。但是,您也可以传递灰度图像的基础像素值(0-255)或RGB565图像的字节反转RGB565值。
  2. size 控制特征点的大小。
  3. thickness 控制线的粗细像素。
  4. 将 fill 设置为True以填充特征点。

返回图像对象,以便您可以使用 . 表示法调用另一个方法。

3.画线段

img.draw_line(20, 20, 100, 20, color = (255, 0, 0), thickness = 2)

4.画矩形

img.draw_rectangle(150, 20, 100, 30, color = (0, 255, 0),thickness = 2, fill = False)

5.画圆

    img.draw_circle(60, 120, 30, color = (0, 0, 255), thickness = 2,
                    fill = False)

6.画箭头

    img.draw_arrow(150, 120, 250, 120, color = (255, 255, 255), size =
                    20, thickness = 2)

7.画十字交叉。

    img.draw_cross(60, 200, color = (255, 255, 255), size = 20,
                    thickness = 2)

8.写字符。

    img.draw_string(150, 200, "Hello 01Studio!", color = (255, 255,
                    255), scale = 2,mono_space = False)

然后贴一个使用示例,方便理解。

示例:

import sensor, image, time, lcd

lcd.init(freq=15000000)
sensor.reset()                      #复位摄像头
sensor.set_vflip(1)                 #将摄像头设置成后置方式(所见即所得)

sensor.set_pixformat(sensor.RGB565) # 设置像素格式 RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)   # 设置帧尺寸 QVGA (320x240)
sensor.skip_frames(time = 2000)     # 灯带设置响应.
clock = time.clock()                # 新建一个时钟对象计算FPS.

while(True):
    clock.tick()
    img = sensor.snapshot()

    # 画线段:从 x0, y0 到 x1, y1 坐标的线段,颜色红色,线宽度 2。
    img.draw_line(20, 20, 100, 20, color = (255, 0, 0), thickness = 2)

    #画矩形:绿色不填充。
    img.draw_rectangle(150, 20, 100, 30, color = (0, 255, 0),
                        thickness = 2, fill = False)

    #画圆:蓝色不填充。
    img.draw_circle(60, 120, 30, color = (0, 0, 255), thickness = 2,
                    fill = False)

    #画箭头:白色。
    img.draw_arrow(150, 120, 250, 120, color = (255, 255, 255), size =
                    20, thickness = 2)

    #画十字交叉。
    img.draw_cross(60, 200, color = (255, 255, 255), size = 20,
                    thickness = 2)

    #写字符。
    img.draw_string(150, 200, "Hello 01Studio!", color = (255, 255,
                    255), scale = 2,mono_space = False)

    lcd.display(img)                # Display on LCD
    print(clock.fps())              # Note: MaixPy's Cam runs about half as fast when connected
                                    # to the IDE. The FPS should increase once disconnected.

函数 find_blobs

image.find_blobs(thresholds[, 
                    invert=False[, 
                    roi[, 
                    x_stride=2[, 
                    y_stride=1[,
                    area_threshold=10[, 
                    pixels_threshold=10[, 
                    merge=
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值