首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Raspistill图像NoFileSave作为一个循环(nodejs)

将Raspistill图像NoFileSave作为一个循环(nodejs)
EN

Stack Overflow用户
提问于 2018-01-10 20:40:09
回答 1查看 454关注 0票数 1

我正在制作一个有趣的开源示例,用于使用Raspberry Pi作为我的硬件进行边缘计算计算机视觉。

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

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

在一段时间内没有保存文件的照片(True)循环似乎永远不会执行。

这是我的样本:

代码语言:javascript
复制
'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函数是真正的日志;这让我相信照片从来没有被拍摄过,因此无法提取像素。

如能提供任何协助,将不胜感激。

更新:看起来这个循环机械师可能很有趣。我想我并不在乎它是否在循环中拍摄照片,只要它拍了一张照片,我就把它复制下来,我拍了一张照片,我不确定地把它模仿掉了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-10 21:04:58

我决定用一个递归循环来处理这个问题,这个循环非常出色。

代码语言:javascript
复制
'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();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48195713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档