当前位置: 首页> 财经> 创投人物 > OpenMV——第一课

OpenMV——第一课

时间:2025/8/23 20:34:34来源:https://blog.csdn.net/Black__goat/article/details/142069869 浏览次数:0次

文章目录

  • Python问题:
    • 1.元组和列表:
    • 2.函数参数:
  • 感光元件代码解析:
    • 1.感光元件初始化并获取图像信息:
    • 2.使用统计信息Statistic:

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

关键字:OpenMV——第一课

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: