循环使用 Raspistill Image NoFileSave (nodejs)
Take Raspistill Image NoFileSave in a loop (nodejs)
我正在制作一个有趣的开源示例,用于使用 Raspberry Pi 作为我的硬件进行边缘计算计算机视觉。
我必须访问硬件的当前 SDK 是基于 nodejs 的(我将在 python 可用时发布第二个)。警告:本人是node小白
我面临的问题是我想在不保存文件的情况下循环使用库存相机拍照。我只想访问缓冲区,提取像素,传递给我的第二个边缘模块。
在 while(true) 循环中拍摄没有文件保存的照片似乎永远不会执行。
这是我的示例:
'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 函数中的 none 实际上曾经记录过;让我相信从来没有拍过照片,因此无法提取像素。
如有任何帮助,我们将不胜感激。
更新:
看起来循环机制可能很有趣。我想我真的不在乎它是否循环拍照,只要它拍照,我传递它,我拍照然后传递它,不确定。
我决定用递归循环来解决这个问题,效果非常好。
'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();
我正在制作一个有趣的开源示例,用于使用 Raspberry Pi 作为我的硬件进行边缘计算计算机视觉。
我必须访问硬件的当前 SDK 是基于 nodejs 的(我将在 python 可用时发布第二个)。警告:本人是node小白
我面临的问题是我想在不保存文件的情况下循环使用库存相机拍照。我只想访问缓冲区,提取像素,传递给我的第二个边缘模块。
在 while(true) 循环中拍摄没有文件保存的照片似乎永远不会执行。
这是我的示例:
'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 函数中的 none 实际上曾经记录过;让我相信从来没有拍过照片,因此无法提取像素。
如有任何帮助,我们将不胜感激。
更新: 看起来循环机制可能很有趣。我想我真的不在乎它是否循环拍照,只要它拍照,我传递它,我拍照然后传递它,不确定。
我决定用递归循环来解决这个问题,效果非常好。
'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();