Data Analysis for Investment & Control

OpenCV 사용하기(1) 본문

Robotics/Software

OpenCV 사용하기(1)

아슈람 2008. 11. 12. 01:37
반응형

현재 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 정보를 대입한다. 

m_pcvImage->imageDataOrigin[(i * width + j) * 4 + 2] = Red;
m_pcvImage->imageDataOrigin[(i * width + j) * 4 + 1] = Green;
m_pcvImage->imageDataOrigin[(i * width + j) * 4 + 0] = Blue;

이런 식으로 하면, 아마도 제대로된 이미지 플랜이 형성될 듯.... 뭔가 화면이 깨진다거나 색상 정보가 이상하다 싶으면, [ ]안의 정보를 잘 맞추어 주도록... 

반응형

'Robotics > Software' 카테고리의 다른 글

OpenCV 사용하기(3)  (0) 2008.11.14
OpenCV 사용하기(2)  (0) 2008.11.13
OpenCV Manual  (0) 2008.11.11
CUDA 개발환경 만들기  (0) 2008.11.10
[취재]엔비디아 GPU 병렬 컴퓨팅 솔루션 데이  (0) 2008.11.10
Comments