我正在使用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函数实际上都没有记录;让我相信永远不会拍摄照片,因此无法提取像素。
非常感谢任何协助。
更新: 看起来循环机制可能很有趣。我想我真的不在乎它是否只是在拍摄照片时拍摄照片,我把它关掉,我拍照并将它传递出去,无限期。
答案 0 :(得分:0)
我决定使用递归循环来解决这个问题,而这种循环非常出色。
table