OpenMV——第一课

Python问题:

1.元组和列表:

  • Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
  • 另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。这就是元组和列表的区别。

2.函数参数:

Python的函数参数中有实参,默认参数,位置参数等,下列三个函数参数传递区别可以参考文章 http://t.csdnimg.cn/NV3Z8

sensor.skip_frames(n=10) #跳过n张照片,在更改设置后,跳过一些帧,等待感光元件变稳定。

sensor.skip_frames(10) #跳过n张照片,在更改设置后,跳过一些帧,等待感光元件变稳定。

sensor.skip_frames() #跳过n张照片,在更改设置后,跳过一些帧,等待感光元件变稳定。

感光元件代码解析:

1.感光元件初始化并获取图像信息:

1.sensor是一个类似函数库的,然后sensor.reset就是用这个函数库里的一个函数。而还有一种用法是,有一个变量img,然后运行img.width(),意思是对这个变量img使用width()方法,这个width是一个方法用来求img的图像宽度。

2.在设置摄像头部分,是通过函数库对摄像头模块的模式进行了设置,这和在STM32中通过标准库配置各硬件外设。例如:配置串口的波特率、停止位这些。

3.在编程和图像处理领域,image 对象(或简称为“图像对象”)是一个非常重要的概念,它代表了一个图像的数据结构。这个数据结构包含了图像的所有信息,比如图像的尺寸(宽度和高度)、颜色深度(每个像素的颜色位数)、颜色模式(如RGB、灰度等)以及最重要的——图像中每个像素的颜色值。所以通过sensor.snapshot()拍摄一帧的图像,然后这个图像的信息就是被一个image类型的变量img保存。

import sensor#引入感光元件的模块

# 设置摄像头
sensor.reset()#初始化感光元件
sensor.set_pixformat(sensor.RGB565)#设置为彩色
sensor.set_framesize(sensor.QVGA)#设置图像的大小
sensor.skip_frames()#跳过n张照片,在更改设置后,跳过一些帧,等待感光元件变稳定。

# 一直拍照
while(True):
    img = sensor.snapshot()#拍摄一张照片,img为一个image对象

当我们拍了照片之后,照片中的信息被保存在image类型的变量img中,我们就可以对img进行一系列的操作:

rect_tuple = (50, 50, 70, 70)  
# 一直拍照
while(True):
    img1 = sensor.snapshot()#拍摄一张照片,img为一个image对象
    sensor.skip_frames(100)
    img2 = sensor.snapshot()#拍摄一张照片,img为一个image对象
    img1.draw_line((10,10,20,30), color=(255,0,0))
    img1.draw_rectangle(rect_tuple, color=(255,0,0))
    width = img1.width()#获取图像的宽度(像素)
    height = img1.height()#获取图像的高度(像素)
    fmt = img1.format()#灰度图会返回 sensor.GRAYSCALE,彩色图会返回 sensor.RGB565。
    size = img1.size()#获取图像的大小(byte)
    a = img1.get_statistics(roi=(0,0,10,20))
    result = img1.difference(img2)

2.使用统计信息Statistic:

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

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

img1_statistics = img1.get_statistics(roi=(0,0,10,20))

打印输出结果img1_statistics:

{"l_mean":85, "l_median":85, "l_mode":85, "l_stdev":2, "l_min":82, "l_max":91, "l_lq":84, "l_uq":86, "a_mean":-5, "a_median":-5, "a_mode":-5, "a_stdev":2, "a_min":-9, "a_max":0, "a_lq":-5, "a_uq":-2, "b_mean":8, "b_median":8, "b_mode":6, "b_stdev":3, "b_min":2, "b_max":14, "b_lq":6, "b_uq":12}

{“l_mean”:85, “l_median”:85, “l_mode”:85, “l_stdev”:2, “l_min”:82, “l_max”:91, “l_lq”:84, “l_uq”:86,

“a_mean”:-5, “a_median”:-5, “a_mode”:-5, “a_stdev”:2, “a_min”:-9, “a_max”:0, “a_lq”:-5, “a_uq”:-2,

“b_mean”:8, “b_median”:8, “b_mode”:6, “b_stdev”:3, “b_min”:2, “b_max”:14, “b_lq”:6, “b_uq”:12}

拿到了经过统计之后的信息之后,我们可以通过一些方法获取其中想要的参数:

img1_statistics = img1.get_statistics(roi=(0,0,10,20))
    color_l=img1_statistics.l_mode()
    color_a=img1_statistics.a_mode()
    color_b=img1_statistics.b_mode()
    print(color_l,color_a,color_b)

打印结果:
5 -7 5
5 -9 5
8 -10 7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无极帝国C++工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值