Node.js 将Raspistill图像nofiles保存在循环中(nodejs)
我正在制作一个有趣的开源示例,用于使用Raspberry Pi作为硬件进行Edge Compute计算机视觉 我必须访问硬件的当前SDK是基于nodejs的(当python可用时,我将发布第二个SDK)。警告:我是节点新手 我面临的问题是,我想在不保存文件的情况下,使用普通照相机循环拍照。我只想访问缓冲区,提取像素,传递到我的第二个边缘模块 在while(true)循环中拍摄没有文件保存的照片似乎永远不会执行 这是我的样本:Node.js 将Raspistill图像nofiles保存在循环中(nodejs),node.js,raspberry-pi,raspistill,Node.js,Raspberry Pi,Raspistill,我正在制作一个有趣的开源示例,用于使用Raspberry Pi作为硬件进行Edge Compute计算机视觉 我必须访问硬件的当前SDK是基于nodejs的(当python可用时,我将发布第二个SDK)。警告:我是节点新手 我面临的问题是,我想在不保存文件的情况下,使用普通照相机循环拍照。我只想访问缓冲区,提取像素,传递到我的第二个边缘模块 在while(true)循环中拍摄没有文件保存的照片似乎永远不会执行 这是我的样本: 'use strict'; var sleep = require(
'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函数实际上都没有日志;这让我相信照片永远不会被拍摄,因此像素无法被提取
如蒙协助,将不胜感激
更新:
看起来循环机械师可能很有趣。我想我真的不在乎它是否在循环中拍照,只要它拍了一张照片,我就把它传递出去,我拍了一张照片,然后不确定地传递出去。我决定用一个递归循环来解决这个问题,而这个循环非常有效
'use strict';
const sleep = require('sleep');
const Raspistill = require('node-raspistill').Raspistill;
const pixel_getter = require('pixel-getter')
const camera = new Raspistill({ verticalFlip: true,
horizontalFlip: true,
width: 500,
height: 500,
encoding: 'jpg',
noFileSave: true,
time: 5 });
function TakePictureLoop() {
console.log('taking picture');
camera.takePhoto().then((photo) => {
console.log('got photo');
pixel_getter.get(photo, function(err, pixels) {
console.log('got pixels');
TakePictureLoop();
});
});
}
TakePictureLoop();
我看到这是为喜欢的人准备的。如果你真的这样做,它最终会使你的pi崩溃,这是POC代码,而不是生产代码。