首页 > 解决方案 > 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()

标签: pythoncronraspberry-pibasehttpserver

解决方案


我想出了一个解决问题的办法。picamera API 中的默认分辨率基于显示器的分辨率。这意味着连接显示器时分辨率为 1920x1080,断开显示器时分辨率为 720x480。这在接收图像时会导致问题,因为接收器需要分辨率为 1920x1080 的图像。解决方案当然是在实例化 picamera 对象时设置分辨率。


推荐阅读