2013-07-21 3 views
1

라스베리 파이에 연결된 웹캠에서 node.js 내의 이미지를 캡처하려고합니다. 캡쳐는 정상적으로 작동하지만, 이제는 이미지를 전송할 때 프레임 속도와 지연에 심각한 문제가 있습니다.opencv-node with node.js에서 24 비트 RGB 이미지를 8 비트 그레이 스케일로 변환

이제 첫 번째 아이디어는 RGB 이미지를 8 비트 회색조로 변환하여 요소 3 (나는 희망 ..)으로 성능을 향상시켜야합니다.

저는 이것을 위해 node.js와 opencv-node를 사용하고 있습니다. 여기에서 잠시 몇 가지 코드 볼 수 있습니다 : 나 이미지를 읽은 후

cv.cvtColor(frame, grey, "CV_BGR2GRAY"); 

같은 것을 사용하려고

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(); 

을하지만 난 유일한 인수 2가 정수로 쉽게 이동할 수 있습니다 말을 어떤 형식 오류를 얻을 수 ... 나는 그 순간에해야할 일을 모른다. 나는 rgb를 그레이 스케일 이미지로 변환하기 위해 http://docs.opencv.org/doc/tutorials/introduction/load_save_image/load_save_image.html#explanation을 언급했다.

옆에 나는 이것이 단지 8 비트 대신 24 비트 회색조 이미지를 제공하는지 확실하지 않다.?!

미리 도움 주셔서 감사합니다. :)

답변

1

"CV_BGR2GRAY"대신 CV_BGR2GRAY를 사용하십시오.

전자는 8 비트 계조 것이다 적분 상수 후자 * CHAR

및 두려움이다.

+0

안녕하세요 berak, 답변을 위해 thx. CV_BGR2GRAY가 정의되어 있지 않습니다. ( – Fidel90

+1

[숫자 값은 6입니다] (https://github.com/Itseez/opencv/blob/master/modules/imgproc/include/opencv2/) imgproc.hpp # L226);) – berak

+0

와우, 그게 내가 찾고 있던 것! 대단히 감사합니다! :) 네트워크 트래픽이 크게 줄어들어 더 많은 FPS를 생성 할 수 있습니다 :) – Fidel90