Python二级--传感器采集-2

传感器采集


题目一:
概述:

'''
考生文件夹下存在两个Python源文件,分别对应两个问题,请按照文件内说明修改代码,实现以下
功能:
下面所示为一套由公司职员随身佩戴的位置传感器采集的数据,文件名称为“sensor.txt”,其内容示例如下:
2016/5/31 0:05,vawelon001,1,1
2016/5/31 0:20,earpa001,1,1
2016/5/31 2:26, earpa001,1,6
…(略)
第一列是传感器获取数据的时间,第二列是传感器的编号,第三列是传感器所在的楼层,第四列是传感器所在的位置区域编号。
'''
'''
问题2 (10分) :在PY301-2. py文件中修改代码,读入“earpa001. txt” 文件中的数据,统i计earpa001对应的职员在
各楼层和区域出现的次数,保存到“earpa001 _count. txt” 文件,每条记录一 -行,位置信息和出现的次数之间用英文
半角逗号隔开,行尾无空格,无空行。参考格式如下。
1-1,5
1-4, 3
... (略)
含义如下:
第1行“1-1,5”中1-1表示1楼1号区域,5表示出现5次; .
第2行“1-4,3”中1-4表示1楼4号区域,3表示出现3次;
'''

思路:

  1. 文件操作
'''sensor.txt文件和代码在一起'''
# 打开文件
fp = open(r'earpa001.txt')
fo = open(r'earpa001_count.txt', 'w')

  1. 信息分割处理
# 对文件进行处理  [:-1] split('\n') 会将最后一个换行进行
txt = fp.read().split('\n')[:-1]

3.遍历信息统计关键信息

d = {}
for i in txt:
    tmp = i[-3:]
    d[tmp] = d.get(tmp, 0) + 1

4.将结果列表化

ls = list(d.items())

5.将结果转为指定个数写入文件

for i in ls:
    fo.write('{},{}\n'.format(i[0].replace(',', '-'), i[-1]))
  1. 释放资源
# 关闭文件释放资源
fp.close()
fo.close()

**总结**:
同上
代码如下:

# 打开文件
fp = open(r'sensor.txt')
fo = open(r'earpa001.txt', 'w')

# 字符分隔处理
# 打开文件
fp = open(r'earpa001.txt')
fo = open(r'earpa001_count.txt', 'w')
# 对文件进行处理  [:-1] split('\n') 会将最后一个换行进行
txt = fp.read().split('\n')[:-1]
# print(txt)


d = {}
for i in txt:
    tmp = i[-3:]
    d[tmp] = d.get(tmp, 0) + 1

# 将结果列表化
ls = list(d.items())

#将结果转为指定个数写入文件
for i in ls:
    fo.write('{},{}\n'.format(i[0].replace(',', '-'), i[-1]))


fp.close()
fo.close()

相关代码和资源都会打包到下面的链接(另附一个份刷题笔记):
刷题经验
代码(直接用Python导入即可),软件,题库:
链接:https://pan.baidu.com/s/1WClgPe1D79_GKclR26LJdA
提取码:pjmm

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
GY-33颜色传感器是一种可以获取RGB颜色值的传感器,可以通过Python程序进行数据获取和处理。 在Python中,可以通过调用相应的库来访问传感器,matplotlib、numpy和opencv是一些常用的用于图像处理的Python库。其中,opencv是专门用于图像处理的库,可以进行图像读取、处理、显示等,通常用于计算机视觉应用中。如果你选择使用该库,需要先通过pip安装,安装指令如下: ``` pip install opencv-python ``` 接下来,我们可以通过以下代码进行GY-33颜色传感器数据的读取: ```python import cv2 cap = cv2.VideoCapture(0) # 打开摄像头 while True: ret, frame = cap.read() # 读取摄像头数据 cv2.imshow('GY-33', frame) # 显示图像 if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() # 关闭摄像头 cv2.destroyAllWindows() # 关闭图像 ``` 以上代码实现了打开摄像头,并可以实时显示摄像头画面。当我们把GY-33传感器放在摄像头前时,我们可以通过以下代码进行数据采集: ```python import cv2 import numpy as np cap = cv2.VideoCapture(0) # 打开摄像头 while True: ret, frame = cap.read() # 读取摄像头数据 # 使用cv2.cvtColor函数将RGB格式转换为HSV格式 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # 通过调整下面这一段中的数值来实现颜色区间的筛选 lower_color = np.array([0,0,0]) upper_color = np.array([255,255,255]) # 将颜色区间在HSV空间中进行筛选 mask = cv2.inRange(hsv, lower_color, upper_color) # 对颜色区域进行处理,并输出RGB值 res = cv2.bitwise_and(frame, frame, mask=mask) b,g,r = cv2.mean(res)[:3] print(int(r),int(g),int(b)) cv2.imshow('GY-33', frame) # 显示图像 if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() # 关闭摄像头 cv2.destroyAllWindows() # 关闭图像 ``` 以上方法可以实现在流媒体模式下获取GY-33颜色传感器的RGB值。由于颜色区间不同,输出值也会有所不同。我们可以根据具体需要,调整颜色区间来得到我们想要的RGB值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

China@V

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

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

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

打赏作者

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

抵扣说明:

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

余额充值