[星瞳科技]OpenMV图像处理的方法(三):使用图像的统计信息

如果我想知道一个区域内的平均颜色或者占面积最大的颜色?该怎么办?

使用统计信息——Statistics!

ROI感兴趣的区域


roi的格式是(x, y, w, h)的tupple.

  • x:ROI区域中左上角的x坐标
  • y:ROI区域中左上角的y坐标
  • w:ROI的宽度
  • h:ROI的高度

Statistics

image.get_statistics(roi=Auto)
Copy

其中roi是目标区域。注意,这里的roi,bins之类的参数,一定要显式地标明,例如:

img.get_statistics(roi=(0,0,10,20))
Copy

如果是 img.get_statistics((0,0,10,20)),ROI不会起作用。

  • statistics.mean() 返回灰度的平均数(0-255) (int)。你也可以通过statistics[0]获得。

  • statistics.median() 返回灰度的中位数(0-255) (int)。你也可以通过statistics[1]获得。

  • statistics.mode() 返回灰度的众数(0-255) (int)。你也可以通过statistics[2]获得。

  • statistics.stdev() 返回灰度的标准差(0-255) (int)。你也可以通过statistics[3]获得。

  • statistics.min() 返回灰度的最小值(0-255) (int)。你也可以通过statistics[4]获得。

  • statistics.max() 返回灰度的最大值(0-255) (int)。你也可以通过statistics[5]获得。

  • statistics.lq() 返回灰度的第一四分数(0-255) (int)。你也可以通过statistics[6]获得。

  • statistics.uq() 返回灰度的第三四分数(0-255) (int)。你也可以通过statistics[7]获得。

上面的是灰度的值,接下来的

  • l_mean,l_median,l_mode,l_stdev,l_min,l_max,l_lq,l_uq,
  • a_mean,a_median,a_mode,a_stdev,a_min,a_max,a_lq,a_uq,
  • b_mean,b_median,b_mode,b_stdev,b_min,b_max,b_lq,b_uq,

是LAB三个通道的平均数,中位数,众数,标准差,最小值,最大值,第一四分数,第三四分数。

举例

检测左上方的区域中的颜色值。

import sensor, image, time

sensor.reset() # 初始化摄像头
sensor.set_pixformat(sensor.RGB565) # 格式为 RGB565.
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(10) # 跳过10帧,使新设置生效
sensor.set_auto_whitebal(False)               # Create a clock object to track the FPS.

ROI=(80,30,15,15)

while(True):
    img = sensor.snapshot()         # Take a picture and return the image.
    statistics=img.get_statistics(roi=ROI)
    color_l=statistics.l_mode()
    color_a=statistics.a_mode()
    color_b=statistics.b_mode()
    print(color_l,color_a,color_b)
    img.draw_rectangle(ROI)
Copy

结果:

终端

56 66 51
56 66 55
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
56 66 55
56 66 51
56 66 51
56 66 51
56 66 51
56 66 51
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenMV是一款基于MicroPython的开源视觉处理平台,它提供了丰富的视觉处理函数来帮助用户进行图像和视频的处理。以下是一些常用的OpenMV视觉处理函数的介绍: 1. `find_blobs()`:用于在图像中查找颜色块。可以通过设置颜色阈值、面积范围等参数来筛选出目标颜色块,并返回其位置、大小等信息。 2. `find_circles()`:用于在图像中查找圆形。可以通过设置圆心位置、半径范围等参数来筛选出目标圆形,并返回其位置、半径等信息。 3. `find_line_segments()`:用于在图像中查找直线段。可以通过设置线段长度、角度范围等参数来筛选出目标直线段,并返回其起点、终点等信息。 4. `find_qrcodes()`:用于在图像中查找二维码。可以通过设置二维码类型、容错率等参数来筛选出目标二维码,并返回其内容、位置等信息。 5. `find_template()`:用于在图像中查找模板匹配。可以通过提供一个模板图像,在目标图像中寻找与之相似的区域,并返回其位置、相似度等信息。 6. `image_processing()`:用于对图像进行基本的处理操作,如灰度化、二值化、平滑滤波、边缘检测等。 7. `get_histogram()`:用于获取图像的直方图信息,可以用于图像的颜色分布分析。 8. `get_statistics()`:用于获取图像统计信息,如最大值、最小值、平均值等。 以上仅是OpenMV视觉处理函数的一部分,还有很多其他功能强大的函数可供使用。如果您有具体的需求或更深入的问题,我可以为您提供更详细的解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值