2011-08-29 5 views
1

OpenNI에 익숙하지 않고 순수한 컬러 이미지를 표시하는 간단한 ImageGenerator를 만들고 싶습니다. 예를 들어 흰색을 말하면 "SampleModule"을 수정했고 UpdateData() 메서드는 수정했습니다. 제가새로운 ImageGenerator를 만들 때 문제가 발생했습니다.

XnStatus SampleImage::UpdateData() 
{ 
    XnStatus nRetVal = XN_STATUS_OK; 

    XnUInt8* pPixel = m_pImageMap; 

    for (XnUInt y = 0; y < 300; ++y) 
    { 
     for (XnUInt x = 0; x < 400; ++x, ++pPixel) 
     {   
      *pPixel = (XnUInt8)255; 
     } 
    } 

    m_nFrameID++; 
    m_nTimestamp += 1000000/SUPPORTED_FPS; 

    // mark that data is old 
    m_bDataAvailable = FALSE; 

    return (XN_STATUS_OK); 
} 

코드 다음대로 255 때문에 updateData() 메소드를 사용하여 * pPixel 값을 할당 미세 컴파일 I는 nireg에 등록 할 수 있지만, I 데이터로부터 상기 이미지 픽셀 값을 판독 할 때 모듈에 의해 생성 된 몇 가지 이상한 값 (내가 예상했던대로 255 아닙니다), 다음 코드를 사용하여 픽셀 값을 읽습니다. 나는 "NiViewer"프로그램이 여전히 이미지 노드를 찾을 수 있다고하지만, "SampleModule"를 실행할 때

const XnUInt8* pImageMap = mImageGenerator.GetImageMap(); 

for (XnUInt y = 0; y < 300; ++y) 
{ 
     for (XnUInt x = 0; x < 400; ++x, ++pImageMap) 
     { 
      cout << (int)*pImageMap << endl; 
     } 
} 

도 깊이로 찾을 수 있습니다.

조언을 주시면 감사하겠습니다.

감사합니다 만, Haolin 웨이

+0

NiViewer를 실행하고 1 또는 2 또는 3 또는 4를 누르면 ... 이미지가 보입니까? 안 그래? – blueskin

+0

안녕하세요 blueskin, niviewer 시도했지만 장치를 찾을 수 없다고, 나는 그것이 구성 파일을 수도 있기 때문에 생각하지만 왜 "SampleModule"openni 함께 제공되는 niviewer에서 잘 실행 모르겠어요 등록 후. 어떤 제안? 고마워. –

+0

이전 버전의 OpenNI를 사용하고있어 SampleModule이 무엇인지 잘 모릅니다. 장치 관리자를 열면 Xbox NUI 카메라 또는 그 선상에있는 내용이 보입니까? – blueskin

답변

0

확인 만약 당신이했던 다음과 같은 사항 : 1 세트 색상 형식, 즉, RGB (또는 YUV)을 updataData의 각 픽셀에 대한 2. 올바른 값() 즉, r = 255, g = 255, b = 255

관련 문제