OpenCV
Plataformas
O OpenCV foi projetado para ser multi-plataforma. Assim, a biblioteca foi escrita em C e isso torna o OpenCV portátil para praticamente qualquer sistema comercial, de PowerPC Macs a robotic dogs. Desde a versão 2.0, o OpenCV inclui sua interface C tradicional, bem como a nova C ++. Na maior parte, novos algoritmos OpenCV agora são desenvolvidos em C ++. Também foram desenvolvidos wrappers para linguagens como Python e Java para incentivar a adoção por um público mais amplo. O OpenCV roda tanto em desktop (Windows, Linux, Android, MacOS, FreeBSD, OpenBSD) e móvel (Android, Maemo, iOS).
CUDA
Em 2010, um novo módulo que fornece aceleração de GPU foi adicionado ao OpenCV. O módulo 'gpu' abrange uma parte significativa da funcionalidade da biblioteca e ainda está em desenvolvimento ativo. Ele é implementado usando CUDA e, portanto, se beneficia do ecossistema CUDA, incluindo bibliotecas como NPP (Primitivas de Desempenho da NVIDIA). Com a adição da aceleração CUDA ao OpenCV, os desenvolvedores podem executar algoritmos OpenCV mais precisos e sofisticados em tempo real em imagens de alta resolução, consumindo menos energia.
Android
Desde 2010, o OpenCV foi portado para o ambiente Android, ele permite usar todo o poder da biblioteca no desenvolvimento de aplicativos móveis.
iOS
Em 2012, a equipe de desenvolvimento do OpenCV trabalhou ativamente na adição de suporte estendido ao iOS. A integração completa está disponível desde a versão 2.4.2 (2012).
OpenCL
Em 2011, um novo módulo que fornece acelerações OpenCL ™ de algoritmos OpenCV foi adicionado à biblioteca. Isso permitiu que o código baseado em OpenCV aproveitasse o hardware heterogêneo, em particular, utilizasse o potencial de GPUs discretas e integradas. Desde a versão 2.4.6 (2013) o OpenCV WinMegaPack oficial inclui o módulo ocl .
Na ramificação 2.4, versões de funções e classes aceleradas pelo OpenCL estavam localizadas em um módulo ocl separado e em um namespace separado (
cv::ocl
), e frequentemente tinham nomes diferentes (por exemplo, cv::resize()
vs cv::ocl::resize()
e cv::CascadeClassifier
vs cv::ocl::OclCascadeClassifier
) que exigiam uma ramificação de código separada no código do aplicativo do usuário. Desde o OpenCV 3.0 ( branch master a partir de 2013) as ramificações aceleradas do OpenCL são adicionadas de forma transparente às funções originais da API e são usadas automaticamente quando possível / sensível.
Nenhum comentário:
Postar um comentário