k210 ——Blob类之blob.code()方法

k210 ——Blob类之blob.code()方法

blob类是k210图像识别中最常用的一类,其中用得多的是blob.rect(),blob.x(),blob.y(), blob.w(),blob.h()这几个方法,这几个方法的用法也很简单,详细大家可以查看k210官方网站image(机器视觉) - Sipeed Wiki


一、blob.code()的函数说明

下面进入正题👇blob.code()方法
这个方法官方给的说明是

返回一个16位的二进制数字,其中为每个颜色阈值设置一个位,这是色块的一部分。
例如,如果您通过 image.find_blobs 来寻找三个颜色阈值,这个色块可以设置为0/1/2位。 注意:除非以merge=True 调用 image.find_blobs ,否则每个色块只能设置一位。 那么颜色阈值不同的多个色块就可以合并在一起了。 您也可以用这个方法以及多个阈值来实现颜色代码跟踪。
可以通过索引 [8] 取得这个值。

那到底这个方法的作用是什么呢?下面进行举例说明👇

举例说明

假设我们有一张图像,其中包含了三个不同颜色的物体:红色、绿色和蓝色。我们希望使用 image.find_blobs() 函数找到这些色块,并为每个色块分配一个唯一的代码。


import sensor
import image

# 初始化传感器
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)

# 拍摄图像
img = sensor.snapshot()

# 设置颜色阈值
red_threshold = (30, 100, -128, 127, -128, 127)  # 红色阈值
green_threshold = (0, 30, -128, 127, -128, 127)  # 绿色阈值

# 寻找色块
blobs = img.find_blobs([red_threshold, green_threshold], pixels_threshold=200)

# 打印每个色块的代码
for blob in blobs:
    print(blob.code())

在上述示例中,我们设置了红色和绿色的颜色阈值,并使用 img.find_blobs() 函数来寻找色块。由于没有设置 merge=True 参数每个色块只能表示一个颜色阈值
如果红色的阈值代码为0,绿色的阈值代码为1,那么对应的色块的代码将是0和1。这意味着我们可以根据色块的代码来区分它们属于红色还是绿色
然而,如果我们设置了 merge=True 参数,那么具有不同颜色阈值的色块可以合并在一起,形成一个更大的色块。这时,色块的代码将包含多个颜色阈值的信息

merge=True参数设置的影响

注重说明一点的是merge=True这个参数设置的影响👇

当我们设置了merge=True时,使用blob.code()将不再能够准确地区分是哪个颜色的色块。而是将具有不同颜色阈值的色块合并在一起,形成一个更大的色块

假设在图像中有两个红色色块和一个绿色色块。在没有设置 merge=True 参数的情况下,我们可以通过色块的代码区分它们,例如红色的代码为0,绿色的代码为1。
但是,当设置了 merge=True 参数后,红色和绿色的色块将被合并成一个或多个更大的色块。这时,色块的代码将不再能够准确地区分是哪个颜色的色块。返回的代码内容通常是一个整数或其他形式的标识,用于表示合并后的色块。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写的什么石山代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值