2013-07-05 2 views
1

Библиотека OpenCV при компиляции с поддержкой графического процессора и OpenGL позволяет отображать изображения с помощью OpenGL. Например, video_reader.cpp (расположенный в образцах gpu) использует OpenGL для визуализации графической графики непосредственно с cv::gpu::GpuMat.Рисунок в OpenCV с OpenGL

cv::gpu::GpuMat d_frame; 
namedWindow("OpenGL", WINDOW_OPENGL); 
cv::gpu::VideoReader_GPU d_reader(fname); 
d_reader.dumpFormat(std::cout); 
if (!d_reader.read(d_frame)) 
    break; 
cv::imshow("GPU", d_frame); 

Это очень полезная функция. Однако он не задокументирован в documentation on-line. Например, для namedWindow флаг WINDOW_OPENGL не указан в документах. Где я могу найти документацию для OpenGL-связанных функций OpenCV?

+1

Документ не охватывает каждую функцию. Накануне я узнал, что метод C API cvLinearPolar (с помощью которого вы можете сопоставить круговой объект с прямоугольником) вообще не имеет ссылки. Есть много функций, отсутствующих в старом API. Надеюсь, авторизованные просмотрят проект и обновят документацию :) – baci

ответ

1

Документация не является полной для 2.4.5. Я не думаю, что есть больше документации, чем то, что вы видите на http://docs.opencv.org.

Есть более старая документация, такая как http://opencv.willowgarage.com/documentation/cpp/ для 2.1, но я не нашел в ней документацию для флага, который вы хотели.

0

Функция

cv::imshow(const & string, cv::InputArray) 

изначально не поддерживает матрицу видеочип, но поддерживает матрицы GPU литья.

т. Е. Что-либо, что поддерживает cv::Mat на его входе, также должно поддерживать cv::gpu::GpuMat. Я предполагаю, что это означает, что когда вы вызываете функцию, она автоматически загружает матрицу в cv::Mat и переходит оттуда, т. Е. Вызов функции imshow не рисует непосредственно gpu-> gpu, а идет gpu-> cpu-> gpu.

Смежные вопросы