我正在尝试从连接到 Raspberry Pi 的网络摄像头捕获 node.js 中的图像。捕获工作正常,但现在当我想传输图像时,我遇到了一些严重的帧率和滞后问题。
现在我的第一个想法是将 RGB 图像转换为 8 位灰度,这应该将性能提高 3 倍(我希望..)。
我为此使用 node.js 和 opencv-node。在这里你可以看到一些代码片段:
var startT = new Date().getTime();
var capture = new cv.VideoCapture();
var frame = new cv.Mat;
var grey = new cv.Mat;
var imgPath = __dirname + "/ramdisk/";
var frame_number = 0;
capture.open(0);
if (!capture.isOpened())
{
console.log("aCapLive could not open capture!");
return;
}
function ImgCap()
{
var elapsed = (new Date().getTime() - startT) / 1000;
capture.read(frame);
cv.imwrite(imgPath+".bmp", frame);
id = setImmediate(ImgCap);
}
ImgCap();
我尝试使用类似的东西
cv.cvtColor(frame, grey, "CV_BGR2GRAY");
阅读图像后,但我只得到一些 TypeError 说参数 2 必须是一个整数......我现在不知道该怎么做。我参考了http://docs.opencv.org/doc/tutorials/introduction/load_save_image/load_save_image.html#explanation将 rgb 转换为灰度图像。
除此之外,我仍然不确定这是否只是为 mit 提供 24 位灰度图像而不是 8 位 ..?!
提前感谢您的帮助!:)