현재 OpenCV를 사용하려는 주 목적은 기존의 내가 만든 영상 알고리즘을 사용하여 스테레오 비전 영상을 처리하면 원하는 만큼의 프레임 처리율이 나오지 않기 때문이며, OpenCV 기술을 사용하면, 과연 어느 정도나 개선이 될까 궁금하기 때문이다.
따라서, 일단 OpenCV를 사용하여 기존의 처리를 그대로 재현해 내는 것이 첫번째 목표이다.
이미지에 대한 데이터나 헤더 정보가 없는 raw 데이터를 카메라로 부터 읽어와서 처리해야 하기 때문에 IplImage 변수를 선언하고 이에 대한 초기화 작업이 필요하다.
당연하겠지만, 단순히 IplImage->imageData에 데이터만 때려 넣는다고 해서 OpenCV가 제대로 인식할리 없다. 그렇다면 어느정도나 초기화 시켜줘야 할까?
내부 변수를 일일이 초기화시켜주는 것 보다는 cvCreateImage 함수를 사용하는 것이 좋을 듯...
cvCreateImage로 초기화를 진행하고, IplImage->imageDataOrigin[i * width + j]에다가 각 픽셀의 RGB 값을 저장하는 방식으로 코딩.....
과연 데이터가 정상적으로 들어가 줄까...??
Point Grey Research 사의 스테레오 카메라인 BumbleBee 라이브러리에서 제공하는 자료형과 OpenCV에서 사용하는 데이터 자료형에 약간의 차이가 있기 때문에 이 부분에 대한 동기화만 이루어 진다면 해결될 듯 싶다.
예를 들어, IplImage에 대한 이미지 depth를 3이 아니라 4로 놓고(실제 한 픽셀의 데이터를 32비트로 지정해서 사용하고 있기 때문에), 아래와 같이 각 픽셀의 RGB 정보를 대입한다.