在循环中获取Raspistill图像NoFileSave(nodejs)

时间:2018-01-10 20:40:09

标签: node.js raspberry-pi raspistill

我正在使用Raspberry Pi作为我的硬件,为Edge Compute Computer Vision制作一个有趣的开源示例。

我必须访问硬件的当前SDK是基于nodejs的(当它可用时我将使用python释放第二个)。警告:我是节点新手。

我面临的问题是我想在一个循环中使用相机拍照而不保存文件。我只是想访问缓冲区,提取像素,传递给我的第二个边缘模块。

拍摄没有文件的照片保存一段时间(真实)循环似乎永远不会执行。

这是我的样本:

'use strict';

var sleep = require('sleep');
const Raspistill = require('node-raspistill').Raspistill;
var pixel_getter = require('pixel-getter');


while(true) {

const camera = new Raspistill({ verticalFlip: true,
                            horizontalFlip: true,
                            width: 500,
                            height: 500,
                            encoding: 'jpg',
                            noFileSave: true,
                            time: 1 });

camera.takePhoto().then((photo) => {
    console.log('got photo');
    pixel_getter.get(photo,
               function(err, pixels) {
                    console.log('got pixels');
                    console.log(String(pixels));
                    });
    });
sleep.sleep(5);
}
console.log('picture taken');

在上面的代码中,console.log函数实际上都没有记录;让我相信永远不会拍摄照片,因此无法提取像素。

非常感谢任何协助。

更新: 看起来循环机制可能很有趣。我想我真的不在乎它是否只是在拍摄照片时拍摄照片,我把它关掉,我拍照并将它传递出去,无限期。

1 个答案:

答案 0 :(得分:0)

我决定使用递归循环来解决这个问题,而这种循环非常出色。

table