내 목표는 웹캠 이미지에서 텍스처를 만드는 것입니다. OpenCV의 새로운 VideoCapture 인터페이스를 통해 Logitech QuickCam 노트북 웹캠을 통해 이미지를 얻습니다. 문제는이 방법으로 비 연속체 데이터를 얻게된다는 것입니다. 즉, 이미지 데이터를 보유하는 행렬의 각 행 끝에 틈이 있음을 의미합니다.비 연속 데이터에서 OpenGL 텍스처를 생성하는 방법은 무엇입니까?
내 이미지 데이터의 레이아웃은 다음과 같습니다 :
이width = frame.cols * frame.elemSize(); // 640 * 3 = 1920 byte
step = frame.step[0]; // 2560 byte
gap = step - width; // 640 byte
는 그러나, 나는 질감을로드 할 때 모든 행의 마지막 640 바이트를 건너 OpenGL을 말할 수있는 방법을 찾지 못했습니다. 그 일을하는 방법이 있는지 궁금합니다. 어쨌든 텍스처로 데이터를로드하는 경우 이미지가 올바르게 표시되지 않습니다 (놀랄 일이 아닙니다). http://picasaweb.google.com/103165673068768416583/Opencv#5562843683120979026
가장 좋은 해결책은 처음부터 continuos 데이터를 얻는 것이지만 다시 (OpenCV를 사용하여)이를 수행하는 방법을 찾을 수 없습니다. 연속체 행렬에 데이터를 복사하면 올바르게 표시됩니다 (http://picasaweb.google.com/103165673068768416583/Opencv#5562843692435711522 참조).
그러나 내가해야 할 일이 없으면 데이터를 복사하고 싶지 않습니다. 어떤 아이디어?
와우,이게 실제로 작동합니다! 고마워, 친구! 나는 또한 BGRA를 소스 형식으로 시도했지만 출력이 여전히 잘못되었다. (http://picasaweb.google.com/103165673068768416583/Opencv#5562907830518954274 참조) frame.elemSize() = 3이기 때문에 기대했다. – binford
다행히 도울 수있다. 이상한 이미지 형식. 텍스처를 업로드 한 후에 ROW_LENGTH를 0으로 재설정하는 것을 잊지 마십시오. 그러면 다음과 같이 물릴 것입니다 : P – rotoglup