第九周学习报告(opencv后续学习,功耗研究)

 参考了一篇关于视频的opencv的csdn

opencv英文文档

对视频的字符叠加

首先,获取视频的信息

import cv2
 
video = cv2.VideoCapture("1.mp4") # 打开视频文件
fps = video.get(cv2.CAP_PROP_FPS) # 获取视频文件的帧速率
frame_Count = video.get(cv2.CAP_PROP_FRAME_COUNT) # 获取视频文件的帧数
frame_Width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取视频文件的帧宽度
frame_Height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 获取视频文件的帧高度
# 输出获取到的属性值
print("帧速率:", fps)
print("帧数:", frame_Count)
print("帧宽度:", frame_Width)
print("帧高度:", frame_Height)

 视频叠加字符有函数:

 # 当前视频播放到第几帧
      cv2.putText(frame, "frame: " + str(frame_Num), (0, 100),
               cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 5)
      # 该帧对应着视频的第几秒
      cv2.putText(frame, "second: " + str(round(frame_Num / fps, 2)) + "s",
               (0, 200), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 5)
      cv2.imshow("Video", frame) # 在窗口中显示读取到的视频文件

 以上是直接叠加视频的信息(帧,秒)到视频上面,ABC同理

cv2.putText(frame, “ABC”,(0, 200), cv2.FONT_HERSHEY_SIMPLEX, 2, (0, 0, 255), 5)
key = cv2.waitKey(50) # 窗口的图像刷新时间为50毫秒

 结尾处

video.release() # 关闭视频文件
cv2.destroyAllWindows() # 销毁显示视频文件的窗口

opencv理解

阈值

在这里,问题直截了当。对于每个像素,应用相同的阈值。如果像素值小于阈值,则将其设置为0,否则将其设置为最大值。

自适应阈值

法基于像素周围的小区域确定像素的阈值

功耗控制

  • 调整waitKey()方法中的参数值可以控制视频文件的播放速度。例如,当cv2.waitKey(1)时,视频文件的播放速度非常快;当cv2.waitKey(50)时,就可以减缓视频文件的播放速度。那么,可以减少单位时间树莓派的处理量。
  • 关闭板载LED
  • 减少运行的进程数量
  • 安装lite版本的系统,不带图形界面(opencv需要图形桌面,除非使用远程桌面)
  • 减少非必要外设
  • cpu降频
  • 关闭wifi,使用以太网接口(不确定有无作用,待验证)

 测定功耗

 使用以上工具直接显示功率

测得:未接HDMI,未运算的情况下功耗为:0.34w~0.36w

关闭树莓派板载LED

 将PWR LED设置为GPIO模式 (默认不亮)

echo gpio | sudo tee /sys/class/leds/led1/trigger # 这时候LED设置为GPIO模式了
echo 1 | sudo tee /sys/class/leds/led1/brightness # 灯亮
echo 0 | sudo tee /sys/class/leds/led1/brightness # 灯灭

 将PWR LED设置回检测电源连接的模式(初始模式)

echo input | sudo tee /sys/class/leds/led1/trigger # 最后调回此模式,作为指示灯

 将ACT LED设置为GPIO模式

echo gpio | sudo tee /sys/class/leds/led1/trigger
echo 1 | sudo tee /sys/class/leds/led0/brightness # 灯亮
echo 0 | sudo tee /sys/class/leds/led0/brightness # 灯灭

将ACT LED设置回初始模式

echo cpu0 | sudo tee /sys/class/leds/led0/trigger # 最后调回此模式,作为指示灯

 其他方法:

电源指示灯

echo "# Disable the PWR LED" | sudo tee -a /boot/config.txt
echo "dtparam=pwr_led_trigger=none" | sudo tee -a /boot/config.txt
echo "dtparam=pwr_led_activelow=off" | sudo tee -a /boot/config.txt

以太网指示灯

echo "# Disable Ethernet LEDs" | sudo tee -a /boot/config.txt
echo "dtparam=eth_led0=14" | sudo tee -a /boot/config.txt
echo "dtparam=eth_led1=14" | sudo tee -a /boot/config.txt

关闭板载蓝牙

echo "dtoverlay=pi3-disable-bt" | sudo tee -a /boot/config.txt

禁用WiFi(此次勿用)

echo "dtoverlay=pi3-disable-wifi" | sudo tee -a /boot/config.txt

可能

dtoverlay=disable-wifi
dtoverlay=disable-bt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值