Некоторые веб-камеры снимают в перевёрнутом режиме. В программе нужно переворачивать такие камеры. Используемый алгоритм отражает изображение вертикально, в связи с чем меняется горизонтальное позиционирование:
void Camera::FlipFrameV(unsigned char * Source, unsigned short Width, unsigned short Height, unsigned char * Output){
unsigned short Colors = 3;
for (unsigned short X = 0; X < Width; X++){
for (unsigned short Y = 0; Y < Height; Y++){
for (unsigned short P = 0; P < Colors; P++){
Output[(X + Y * Width) * Colors + P] = Source[(X + (Height - 1 - Y) * Width) * Colors + P];
}
}
}
}
Как сделать не отражение, а переворот на 180, чтобы сохранить позиционирование в кадре? (соотношение сторон 4:3)
PS: кадр изначально в YUY2 формате (LPVIDEOHDR VHDR->lpData
), в RGB перегоняется после получения - может проще сделать переворот на 180 сразу с YUY2 (если да, то как)?
Точно так же, только еще оборачиваете X. Оборот по X и по Y в сумме дают поворот на 180.
Output[(X + Y * Width) * Colors + P] =
Source[((Width - 1 - X) + (Height - 1 - Y) * Width) * Colors + P];
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Наведите пожалуйста на материалы или подскажите какие изучить функцииНужно после клика по кнопке одно всплывающее окно закрыть и открыть...
Использую local storage для сохранения игры, cобираюсь сохранить массив, но ему нужны начальные значения неравные нулю, как осуществить?
Со стилизацией форм вечные проблемыСейчас столкнулся с необходимостью по-особенному выводить дату