Я пытаюсь использовать ARtoolkit, но со статичным изображением вместо видеопотока. Мне нужно иметь возможность загружать изображение, идентифицировать маркеры и находить их. Я использую SDL для загрузки изображения. Я могу получить значения RGB для каждого пикселя из загруженного изображения, но не знаю, как отформатировать данные, чтобы ARToolkit мог с ними работать.
ARToolkit хранит свои изображения как тип ARUint8* (беззнаковый char*). Я смущен тем, как этот формат работает. Прямо сейчас у меня есть этот код внутри основного цикла, который работает непрерывно по мере выполнения программы. Этот код (должен) распечатывать значения RGB для каждого пикселя в кадре.
ARUint8* dataPtr;
dataPtr = arVideoGetImage(); // Get a new frame from the webcam
int width, height;
if (arVideoInqSize(&width, &height) == 0) // if width and height could be obtained
{
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
printf("pixel %i, %i: %i, %i, %i\n", x, y, dataPtr[(y * 320) + x], dataPtr[(y * 320) + x + 1], dataPtr[(y * 320) + x + 2]);
}
}
}
Типичный вывод:
pixel 5, 100: 0, 0, 0
pixel 6, 100: 178, 3, 0
pixel 7, 100: 0, 0, 177
etc...
Кажется, что он правильно обращается к значениям RGB, но я не уверен, как скопировать данные изображения (из формата SDL) в этот новый формат.