PI Camera 无法在断开连接的显示器上工作

PI Camera not working with disconnected display

我是 运行 在我的 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对象时设置分辨率。