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:
- 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三个通道的平均数,中位数,众数,标准差,最小值,最大值,第一四分数,第三四分数。
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