使用node.js中的opencv-node将24位RGB图像转换为8位灰度

我试图从连接到Raspberry Pi的networking摄像头的node.js中捕捉图像。 捕捉工作正常,但现在当我想传输的图像,我有一些严重的问题与帧率和滞后。

现在我的第一个想法是将RGB图像转换为8位灰度,这应该提高因子3的性能(我希望..)。

我正在使用node.js和opencv节点。 在这里你可以看到一些代码片段:

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转换为灰度图像。

除此之外,我还不确定这是否只是一个24位灰度图像,而不是8位..?!

提前感谢您的帮助! 🙂

使用CV_BGR2GRAY而不是“CV_BGR2GRAY”。

前者是积分常数,后者是char *

没有恐惧,这将是8位灰度。