python - PI Camera 无法与断开的显示器一起工作
问题描述
我在我的 rasberry pi 上运行一个用 python 编写的 HTTP 服务器。服务器使用 pi v2 相机模块拍摄图像。
我已将 crontab 设置为在启动后 30 秒自动启动我的脚本。
只要有一个通过 HDMI 连接到 pi 的屏幕,系统就会按预期工作,并且我得到了 1920x1080 的 RGB 数据阵列。但是,在屏幕断开连接的情况下启动 pi 会从服务器产生完全出乎意料的输出,并且在向服务器发送请求时我们会得到一小部分数据。
这是服务器代码:
class myHandler(BaseHTTPRequestHandler):
camera = RaspiCam()
#Handler for the GET requests
def do_GET(self):
img = self.camera.capture()
data = img.tostring()
self.send_response(200)
self.end_headers()
self.wfile.write(data)
return
PORT_NUMBER = int(sys.argv[1])
server = HTTPServer(('', PORT_NUMBER), myHandler)
server.serve_forever()
解决方案
我想出了一个解决问题的办法。picamera API 中的默认分辨率基于显示器的分辨率。这意味着连接显示器时分辨率为 1920x1080,断开显示器时分辨率为 720x480。这在接收图像时会导致问题,因为接收器需要分辨率为 1920x1080 的图像。解决方案当然是在实例化 picamera 对象时设置分辨率。
推荐阅读
- sql-server - 查找并计算具有不同列更改顺序的两个表
- prolog - 两个目标函数
- c# - 我如何循环并从我的 firebase Json 中获取值?
- javascript - 如何修复“Vue.js 组件中的默认插槽原始 html 渲染”
- javascript - 基于对另一个 IF 语句的响应的 IF 语句条件
- c# - 单击时从 LinkButton 获取 ListViewItem
- javascript - amCharts dateAxis 只显示时间而不显示日期
- java - 使用 Java 将符号链接复制到文件夹
- javascript - 基于 D3 可视化的另一个对象按特定顺序按值对对象数组进行排序
- ldap - 用户 DN 不一致的组的 rabbitmq ldap 授权