Вики-текст старой страницы до правки (old_wikitext ) | '{{Карточка программы
|name = OpenCV
|logo = [[Файл:OpenCV Logo with text.png|180px]]
|screenshot =
|caption =
|author = [[Intel Corporation]], Willow Garage Inc.
|developer = <!-- либо developers -->
|genre = [[компьютерное зрение]]
|programming_language = [[С++]], [[Java]], [[Python]]
|user_interface =
|language =
|operating_system = [[Linux]], [[Mac OS X]], [[Android]] и др. [[UNIX-подобная операционная система|UNIX-подобные]], [[Windows]]
|released = 2006<ref name="repo" />
|platform =
|latest_release_version = 2.4.1
|latest_release_date = 2012-06-01<ref name="repo">[http://sourceforge.net/projects/opencvlibrary/files/ Репозиторий ''OpenCV''.]</ref>
|latest_preview_version =
|latest_preview_date =
|latest_rc_version =
|latest_rc_date =
|latest_beta_version =
|latest_beta_date =
|latest_alpha_version =
|latest_alpha_date =
|status = активное
|license = [[Лицензия BSD|BSD]]
|website = [http://opencv.org/ opencv.org]}}
'''OpenCV''' ({{lang-en|Open Source Computer Vision Library}}, библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов [[компьютерное зрение|компьютерного зрения]], [[обработка изображений|обработки изображений]] и численных алгоритмов общего назначения с [[Открытое программное обеспечение|открытым кодом]]. Реализована на [[Си (язык программирования)|C]]/[[C++]], также разрабатывается для [[Python]], [[Ruby]], [[Matlab]], [[Lua]] и других языков<ref name="Learning OpenCV">''Bradsky G., Kaehler A.'' [http://oreilly.com/catalog/9780596516130/ Learning OpenCV] — O’Reilly, 2008. — C. 1 — ISBN 978-0-596-51613-0</ref>. Может свободно использоваться в академических и коммерческих целях — распространяется в условиях [[лицензии BSD]].
== Применение ==
* Для утверждения общего стандартного интерфейса компьютерного зрения для приложений в этой области. Для способствования росту числа таких приложений и создания новых моделей использования PC.
* Сделать платформы [[Intel]] привлекательными для разработчиков таких приложений за счёт дополнительного ускорения OpenCV с помощью Intel® Performance Libraries (Сейчас включают [[Integrated Performance Primitives|IPP]] (низкоуровневые библиотеки для обработки сигналов, изображений, а также медиа-кодеки) и [[MKL]] (специальная версия [[LAPACK]] и [[FFTPack]])). OpenCV способна автоматически обнаруживать присутствие [[Integrated Performance Primitives|IPP]] и [[MKL]] и использовать их для ускорения обработки.
* (Замечание — для работы OpenCV c [[Integrated Performance Primitives|IPP]] версии 5.3 необходимо скачать с сайта Intel и подменить файл cxswitcher.cpp — иначе [[Integrated Performance Primitives|IPP]] не будет обнаруживаться)
== Поддерживаемые платформы и инструменты ==
Сами библиотеки:
* [[Microsoft Windows]]: компиляторы Microsoft Visual C++ (6.0, .NET 2003), Intel Compiler, Borland C++, [[Mingw]] ([[GCC]] 3.x).
* [[Linux]]: [[GNU Compiler Collection|GCC]] (2.9x, 3.x), Intel Compiler: «./configure-make-make install», [[RPM]] (spec файл включен в поставку)
* [[Mac OS X]]: [[GNU Compiler Collection|GCC]] (3.x, 4.x)
* [[Android]]
* [[Apple iOS|iOS]] — неофициально
* Используются C и «облегченный» C++. Прагмы и условная компиляция используются очень ограниченно.
Средства [[графический интерфейс пользователя|GUI]], захват видео:
* [[Microsoft Windows]]: [[Microsoft DirectShow|DirectShow]], [[Microsoft Video for Windows|VfW]], [[Microsoft Media Integration Layer|MIL]], [[CMU1394]]
* [[Linux]]: [[V4L2]], [[DC1394]], [[FFMPEG]]
* [[Mac OS X]]: [[QuickTime]]
Документация: статический [[HTML]], [[PDF]].
== Основные модули ==
В версии 2.2 библиотека была реорганизована. Вместо универсальных модулей cxcore, cvaux, highGUI и других было создано несколько компактных модулей с более узкой специализацией:
* opencv_core — основная функциональность. Включает в себя базовые структуры, вычисления(математические функции, генераторы случайных чисел) и линейную алгебру, [[DFT]], [[DCT]], ввод/вывод для XML и YAWL и т. д.
* opencv_imgproc — обработка изображений (фильтрация, геометрические преобразования, преобразование цветовых пространств и т. д.).
* opencv_highgui — простой UI, ввод/вывод изображений и видео.
* opencv_ml — статистические модели машинного обучения (SVM, деревья решений, обучение со стимулированием и т. д.).
* opencv_features2d — распознавание и описание плоских примитивов ({{не переведено 3|SURF|SURF|en}}, FAST и другие, включая специализированный фреймворк).
* opencv_video — анализ движения и отслеживание объектов ([[оптический поток]], шаблоны движения, устранение фона).
* opencv_objdetect — обнаружение объектов на изображении (нахождение лиц с помощью {{не переведено|есть=:en:Viola-Jones object detection framework|надо=Алгоритм Виола-Джонса|текст=алгоритма Виолы-Джонса}}, распознавание людей HOG и т. д.).
* opencv_calib3d — калибровка камеры, поиск стерео-соответствия и элементы обработки трехмерных данных.
* opencv_flann — библиотека быстрого поиска ближайших соседей (FLANN 1.5) и обертки OpenCV.
* opencv_contrib — сопутствующий код, ещё не готовый для применения.
* opencv_legacy — устаревший код, сохраненный ради обратной совместимости.
* opencv_gpu — ускорение некоторых функций OpenCV за счет [[CUDA]], создан при поддержке [[NVidia]].
== Пример проверки работы OpenCV с IPP ==
<source lang="c">
#include "stdio.h"
#include "cv.h"
#include "highgui.h"
char name0[] = "image1.jpeg";
char name1[] = "image2.jpeg";
int main()
{
IplImage* img1 = NULL;
IplImage* img2 = NULL;
//cvNamedWindow("Image", 1);
//load original image
img1 = cvLoadImage(name0,1);
img2 = cvLoadImage(name1,1);
//cvUseOptimized(1); // load IPP
//How to check whether IPP is used or not?
const char* plugin_info = 0;
double sm1, sm2, sm3;
int Count = 100;
printf("== Test for resizing images in OpenCV with IPP ==\n");
for (int j=0; j<2; j++) {
if (j == 1)
cvUseOptimized(0); // unload IPP
cvGetModuleInfo(0,0,&plugin_info);
bool ipp_is_used = plugin_info != 0 && strstr(plugin_info,"ipp")!=0;
sm1=cvGetTickCount()/cvGetTickFrequency();
for (int i=0; i<Count; i++) {
IplImage* newImage1 = NULL;
IplImage* newImage2 = NULL;
// resize the image
newImage1 = cvCreateImage(cvSize((img1->width*2.55) ,(img1->height*3.77)), img1->depth, img1->nChannels);
newImage2 = cvCreateImage(cvSize((img2->width*2.55) ,(img2->height*3.77)), img2->depth, img2->nChannels);
cvResize(img1, newImage1);
cvResize(img2, newImage2);
//
cvReleaseImage(&newImage1);
cvReleaseImage(&newImage2);
}
sm2=cvGetTickCount()/cvGetTickFrequency();
sm3 = sm2 - sm1;
if (ipp_is_used)
printf("* IPP is used\n");
else
printf("* IPP is not used! \n");
printf("* Iteration resize = %d \n", Count);
printf("m=%f\n", sm3);
int m, s, ms;
m = sm3 / 60000000;
s = (sm3 - m*60000000) /1000000;
ms = (sm3 - (m*60000000)-(s*1000000));
printf("* Time - %d min %d sec %d msec \n",(int)(m), (int)s, (int)ms);
printf("=================================================\n");
}
cvReleaseImage(&img1);
cvReleaseImage(&img2);
//cvShowImage("Image", newImage1);
//cvDestroyWindow( "Image" );
return 0;
}
</source>
== Примечания ==
{{примечания}}
== Литература ==
* [http://locv.ru/ Перевод книги Learning OpenCV.]
== Ссылки ==
* [http://habrahabr.ru/company/itseez/blog/146434/ Краткая история проекта ''OpenCV''.]
* [http://sourceforge.net/projects/opencvlibrary/ Проект ''OpenCV''] на [[SourceForge.net]].
* [http://code.opencv.org/ Сайт разработки ''OpenCV''.]
* [http://opencv.willowgarage.com/wiki/ Документация OpenCV в формате вики]
* [http://robot-develop.org/archives/tag/opencv OpenCV в робототехнике.]
* [http://www.emgu.com Emgu CV — регулярно-обновляемая привязка для C#]
* [http://www.cs.ru.ac.za/research/groups/sharperCV/ SharperCV — привязка для C#]
* [http://www.ient.rwth-aachen.de/cms/software/opencv/ Привязки для Python. Будет включена в следующую версию OpenCV]
* [http://robocraft.ru/tag/OpenCV/ OpenCV шаг за шагом. Уроки OpenCV по-русски от Чеширского Кота.]
[[Категория:Графические библиотеки]]
[[Категория:Свободные библиотеки программ]]
[[Категория:Применение искусственного интеллекта]]
[[Категория:Библиотеки Си]]
[[cs:OpenCV]]
[[de:OpenCV]]
[[en:OpenCV]]
[[es:OpenCV]]
[[fr:OpenCV]]
[[he:OpenCV]]
[[it:OpenCV]]
[[ja:OpenCV]]
[[ko:OpenCV]]
[[pl:OpenCV]]
[[pt:OpenCV]]
[[sv:OpenCV]]
[[zh:OpenCV]]' |
Вики-текст новой страницы после правки (new_wikitext ) | '{{Карточка программы
|name = OpenCV
|logo = [[Файл:OpenCV Logo with text.png|180px]]
|screenshot =
|caption =
|author = [[Intel Corporation]], Willow Garage Inc.
|developer = [http://itseez.com/ Itseez ]<!-- либо developers -->
|genre = [[компьютерное зрение]]
|programming_language = [[С++]], [[Java]], [[Python]]
|user_interface =
|language =
|operating_system = [[Linux]], [[Mac OS X]], [[Android]] и др. [[UNIX-подобная операционная система|UNIX-подобные]], [[Windows]]
|released = 2006<ref name="repo" />
|platform =
|latest_release_version = 2.4.1
|latest_release_date = 2012-06-01<ref name="repo">[http://sourceforge.net/projects/opencvlibrary/files/ Репозиторий ''OpenCV''.]</ref>
|latest_preview_version =
|latest_preview_date =
|latest_rc_version =
|latest_rc_date =
|latest_beta_version =
|latest_beta_date =
|latest_alpha_version =
|latest_alpha_date =
|status = активное
|license = [[Лицензия BSD|BSD]]
|website = [http://opencv.org/ opencv.org]}}
'''OpenCV''' ({{lang-en|Open Source Computer Vision Library}}, библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов [[компьютерное зрение|компьютерного зрения]], [[обработка изображений|обработки изображений]] и численных алгоритмов общего назначения с [[Открытое программное обеспечение|открытым кодом]]. Реализована на [[Си (язык программирования)|C]]/[[C++]], также разрабатывается для [[Python]], [[Ruby]], [[Matlab]], [[Lua]] и других языков<ref name="Learning OpenCV">''Bradsky G., Kaehler A.'' [http://oreilly.com/catalog/9780596516130/ Learning OpenCV] — O’Reilly, 2008. — C. 1 — ISBN 978-0-596-51613-0</ref>. Может свободно использоваться в академических и коммерческих целях — распространяется в условиях [[лицензии BSD]].
== Применение ==
* Для утверждения общего стандартного интерфейса компьютерного зрения для приложений в этой области. Для способствования росту числа таких приложений и создания новых моделей использования PC.
* Сделать платформы [[Intel]] привлекательными для разработчиков таких приложений за счёт дополнительного ускорения OpenCV с помощью Intel® Performance Libraries (Сейчас включают [[Integrated Performance Primitives|IPP]] (низкоуровневые библиотеки для обработки сигналов, изображений, а также медиа-кодеки) и [[MKL]] (специальная версия [[LAPACK]] и [[FFTPack]])). OpenCV способна автоматически обнаруживать присутствие [[Integrated Performance Primitives|IPP]] и [[MKL]] и использовать их для ускорения обработки.
* (Замечание — для работы OpenCV c [[Integrated Performance Primitives|IPP]] версии 5.3 необходимо скачать с сайта Intel и подменить файл cxswitcher.cpp — иначе [[Integrated Performance Primitives|IPP]] не будет обнаруживаться)
== Поддерживаемые платформы и инструменты ==
Сами библиотеки:
* [[Microsoft Windows]]: компиляторы Microsoft Visual C++ (6.0, .NET 2003), Intel Compiler, Borland C++, [[Mingw]] ([[GCC]] 3.x).
* [[Linux]]: [[GNU Compiler Collection|GCC]] (2.9x, 3.x), Intel Compiler: «./configure-make-make install», [[RPM]] (spec файл включен в поставку)
* [[Mac OS X]]: [[GNU Compiler Collection|GCC]] (3.x, 4.x)
* [[Android]]
* [[Apple iOS|iOS]] — неофициально
* Используются C и «облегченный» C++. Прагмы и условная компиляция используются очень ограниченно.
Средства [[графический интерфейс пользователя|GUI]], захват видео:
* [[Microsoft Windows]]: [[Microsoft DirectShow|DirectShow]], [[Microsoft Video for Windows|VfW]], [[Microsoft Media Integration Layer|MIL]], [[CMU1394]]
* [[Linux]]: [[V4L2]], [[DC1394]], [[FFMPEG]]
* [[Mac OS X]]: [[QuickTime]]
Документация: статический [[HTML]], [[PDF]].
== Основные модули ==
В версии 2.2 библиотека была реорганизована. Вместо универсальных модулей cxcore, cvaux, highGUI и других было создано несколько компактных модулей с более узкой специализацией:
* opencv_core — основная функциональность. Включает в себя базовые структуры, вычисления(математические функции, генераторы случайных чисел) и линейную алгебру, [[DFT]], [[DCT]], ввод/вывод для XML и YAWL и т. д.
* opencv_imgproc — обработка изображений (фильтрация, геометрические преобразования, преобразование цветовых пространств и т. д.).
* opencv_highgui — простой UI, ввод/вывод изображений и видео.
* opencv_ml — статистические модели машинного обучения (SVM, деревья решений, обучение со стимулированием и т. д.).
* opencv_features2d — распознавание и описание плоских примитивов ({{не переведено 3|SURF|SURF|en}}, FAST и другие, включая специализированный фреймворк).
* opencv_video — анализ движения и отслеживание объектов ([[оптический поток]], шаблоны движения, устранение фона).
* opencv_objdetect — обнаружение объектов на изображении (нахождение лиц с помощью {{не переведено|есть=:en:Viola-Jones object detection framework|надо=Алгоритм Виола-Джонса|текст=алгоритма Виолы-Джонса}}, распознавание людей HOG и т. д.).
* opencv_calib3d — калибровка камеры, поиск стерео-соответствия и элементы обработки трехмерных данных.
* opencv_flann — библиотека быстрого поиска ближайших соседей (FLANN 1.5) и обертки OpenCV.
* opencv_contrib — сопутствующий код, ещё не готовый для применения.
* opencv_legacy — устаревший код, сохраненный ради обратной совместимости.
* opencv_gpu — ускорение некоторых функций OpenCV за счет [[CUDA]], создан при поддержке [[NVidia]].
== Пример проверки работы OpenCV с IPP ==
<source lang="c">
#include "stdio.h"
#include "cv.h"
#include "highgui.h"
char name0[] = "image1.jpeg";
char name1[] = "image2.jpeg";
int main()
{
IplImage* img1 = NULL;
IplImage* img2 = NULL;
//cvNamedWindow("Image", 1);
//load original image
img1 = cvLoadImage(name0,1);
img2 = cvLoadImage(name1,1);
//cvUseOptimized(1); // load IPP
//How to check whether IPP is used or not?
const char* plugin_info = 0;
double sm1, sm2, sm3;
int Count = 100;
printf("== Test for resizing images in OpenCV with IPP ==\n");
for (int j=0; j<2; j++) {
if (j == 1)
cvUseOptimized(0); // unload IPP
cvGetModuleInfo(0,0,&plugin_info);
bool ipp_is_used = plugin_info != 0 && strstr(plugin_info,"ipp")!=0;
sm1=cvGetTickCount()/cvGetTickFrequency();
for (int i=0; i<Count; i++) {
IplImage* newImage1 = NULL;
IplImage* newImage2 = NULL;
// resize the image
newImage1 = cvCreateImage(cvSize((img1->width*2.55) ,(img1->height*3.77)), img1->depth, img1->nChannels);
newImage2 = cvCreateImage(cvSize((img2->width*2.55) ,(img2->height*3.77)), img2->depth, img2->nChannels);
cvResize(img1, newImage1);
cvResize(img2, newImage2);
//
cvReleaseImage(&newImage1);
cvReleaseImage(&newImage2);
}
sm2=cvGetTickCount()/cvGetTickFrequency();
sm3 = sm2 - sm1;
if (ipp_is_used)
printf("* IPP is used\n");
else
printf("* IPP is not used! \n");
printf("* Iteration resize = %d \n", Count);
printf("m=%f\n", sm3);
int m, s, ms;
m = sm3 / 60000000;
s = (sm3 - m*60000000) /1000000;
ms = (sm3 - (m*60000000)-(s*1000000));
printf("* Time - %d min %d sec %d msec \n",(int)(m), (int)s, (int)ms);
printf("=================================================\n");
}
cvReleaseImage(&img1);
cvReleaseImage(&img2);
//cvShowImage("Image", newImage1);
//cvDestroyWindow( "Image" );
return 0;
}
</source>
== Примечания ==
{{примечания}}
== Литература ==
* [http://locv.ru/ Перевод книги Learning OpenCV.]
== Ссылки ==
* [http://habrahabr.ru/company/itseez/blog/146434/ Краткая история проекта ''OpenCV''.]
* [http://sourceforge.net/projects/opencvlibrary/ Проект ''OpenCV''] на [[SourceForge.net]].
* [http://code.opencv.org/ Сайт разработки ''OpenCV''.]
* [http://opencv.willowgarage.com/wiki/ Документация OpenCV в формате вики]
* [http://robot-develop.org/archives/tag/opencv OpenCV в робототехнике.]
* [http://www.emgu.com Emgu CV — регулярно-обновляемая привязка для C#]
* [http://www.cs.ru.ac.za/research/groups/sharperCV/ SharperCV — привязка для C#]
* [http://www.ient.rwth-aachen.de/cms/software/opencv/ Привязки для Python. Будет включена в следующую версию OpenCV]
* [http://robocraft.ru/tag/OpenCV/ OpenCV шаг за шагом. Уроки OpenCV по-русски от Чеширского Кота.]
[[Категория:Графические библиотеки]]
[[Категория:Свободные библиотеки программ]]
[[Категория:Применение искусственного интеллекта]]
[[Категория:Библиотеки Си]]
[[cs:OpenCV]]
[[de:OpenCV]]
[[en:OpenCV]]
[[es:OpenCV]]
[[fr:OpenCV]]
[[he:OpenCV]]
[[it:OpenCV]]
[[ja:OpenCV]]
[[ko:OpenCV]]
[[pl:OpenCV]]
[[pt:OpenCV]]
[[sv:OpenCV]]
[[zh:OpenCV]]' |