OpenCV 2.3 is available
New major release of OpenCV library is coming. Release candidate is available for testing right now!
Update: Opencv 2.3 has been released on 5 June.
Update 2: Added precompiled binaries of iOS!
Download OpenCV 2.3:
- Win32: http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.3/
- Android: http://sourceforge.net/projects/opencvlibrary/files/opencv-android/2.3/OpenCV-2.3.0alpha1-android-bin.tar.bz2/download
- Unix: http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3/OpenCV-2.3.0.tar.bz2/download
- iOS: Precompiled OpenCV 2.3 iOS binaries (2834)
General Modifications and Improvements
Buildbot-based Continuous Integration system is now continuously testing OpenCV snapshots. The status is available at http://buildbot.itseez.com
OpenCV switched to Google Test (http://code.google.com/p/googletest/) engine for regression and correctness tests. Each module now has test subdirectory with the tests.
New Functionality, Features
Many functions and methods now take InputArray/OutputArray instead of "cv::Mat" references. It retains compatibility with the existing code and yet brings more natural support for STL vectors and potentially other "foreign" data structures to OpenCV. See http://opencv.itseez.com/modules/core/doc/intro.html#inputarray-and-outputarray for details.
Core
- LAPACK is not used by OpenCV anymore. The change decreased the library footprint and the compile time. We now use our own implementation of Jacobi SVD. SVD performance on small matrices (2x2 to 10x10) has been greatly improved; on larger matrices it is still pretty good. SVD accuracy on poorly-conditioned matrices has also been improved.
- Arithmetic operations now support mixed-type operands and arbitrary number of channels.
Features2d
- Completely new patent-free BRIEF and ORB feature descriptors have been added.
- Very fast LSH matcher for BRIEF and ORB descriptors will be added in 2.3.1.
Calib3d
- A new calibration pattern, "circles grid", has been added. See findCirclesGrid() function and the updated calibration.cpp sample. With the new pattern calibration accuracy is usually much higher.
Highgui
- [Windows] videoInput is now a part of highgui. If there are any problems with compiling highgui, set "WITH_VIDEOINPUT=OFF" in CMake.
Stitching
- opencv_stitching is a beta version of new application that makes a panorama out of a set of photos which were took from the same point.
Python
- Now there are 2 extension modules: cv and cv2. cv2 includes wrappers for OpenCV 2.x functionality. opencv/samples/python2 contain a few samples demonstrating cv2 in use.
Contrib
- A new experimental variational stereo correspondence algorithm StereoVar has been added.
Gpu
- The module now requires CUDA 4.0 or later; Many improvements and bug fixes have been made.
Android port
- With support from NVidia, OpenCV Android port (which is actually not a separate branch of OpenCV, it's the same code tree with additional build scripts) has been greatly improved, a few demos developed. Camera support has been added as well. See http://opencv.willowgarage.com/wiki/Android for details.
Documentation
OpenCV documentation is now written in ReStructured Text and built using Sphinx (http://sphinx.pocoo.org).
It's not a single reference manual now, it's 4 reference manuals (OpenCV 2.x C++ API, OpenCV 2.x Python API, OpenCV 1.x C API, OpenCV 1.x Python API), the emerging user guide and a set of tutorials for beginners.
Style and grammar of the main reference manual (OpenCV 2.x C++ API) have been thoroughly checked and fixed.
Online up-to-date version of the manual is available at http://opencv.itseez.com
Samples
Several samples using the new Python bindings (cv2 module) have been added: https://code.ros.org/svn/opencv/branches/2.3/opencv/samples/python2
Optimization
Several ML algorithms have been threaded using TBB.
Bug Fixes
Over 250 issues have been resolved. Most of the issues (closed and still open) are listed at https://code.ros.org/trac/opencv/report/6.
Known Problems/Limitations
Documentation (especially on the new Python bindings) is still being updated. Watch opencv.itseez.com for updates.
Android port does not provide Java interface for OpenCV. It is going to be added to 2.3 branch in a few weeks.
The list of the other open bugs can be found at http://code.ros.org/trac/opencv/report/1.



July 4th, 2011 - 10:04
An idea for the official release of version 2.3?
July 4th, 2011 - 10:05
I mean, for a date?
July 4th, 2011 - 10:30
I think i will be released in this month.
July 25th, 2011 - 08:15
Я так понимаю версия 2.3 доступна и для iOS? Не подскажешь (можно ссылками) как быстро прикрутить openCV 2.3 к XCode-у?
July 26th, 2011 - 17:31
Привет.
Проще всего взять настроенный проект тут: https://github.com/BloodAxe/opencv-ios-template-project, удалить все сорцы, заменить бинари и заголовочные файлы новым OpenCV и добавить свой код.
July 27th, 2011 - 05:19
Ну а если делать самому – я правильно понимаю, что могу просто взять precompiled binaries, создать проект, указав пути к binaries и этого будет достаточно? Или мне при этом надо будет делать еще что-то?
July 27th, 2011 - 10:21
Необходимый минимум настроек проекта для XCode:
1) Указать путь поиска заголовочных файлов
2) Указать путь поиска статических библиотек (Для Debug и Release разные пути)
3) Указать линковщику список библиотек, которые нужно линковать.
Удачи!
July 27th, 2011 - 06:59
Скачал настроенный проект. Работает. Заменил папку opencv на последнюю отсюда http://computer-vision-talks.com/download/opencv-2.3-ios-precompiled.zip. Тоже работает. Но если сразу не компилить, а только после замены папки opencv на последнюю то при попытке компиляции возникает ошибка “ld: library not found for -lopencv_lapack” Я просто удалил ссылку на эту либу в свойствах проекта и заработало, но вот правильно ли это?… Т.е. если сначала откомпилить как есть, а потом заменить папку opencv – работает, а если заменить сначала а потом откомпилить – нет
July 27th, 2011 - 10:16
Lapack был удален из ветки 2.3 и более не используется. Настроенный проект создавался во времена OpenCV 2.2 и потому ссылка на opencv_lapack все еще присутствует. Ее можно безболезненно удалить.
July 27th, 2011 - 09:10
И еще. Если скомпилить проект по твоей ссылке не для симулятора, а для девайса, то выдает такую ошибку: ld: in /Users/sparkdemon/Projects/BloodAxe-opencv-ios-template-project-bc5e130/opencv/lib/release-universal/liblibjasper.a, file is universal but does not contain a(n) armv6 slice for architecture armv6. Убрал из настроек armv6 и все ок, но это же наверное неправильно. Ты извини, что может излишне настырный, но просто хочется разобраться и прикрутить нормально последнюю версию opencv.
July 27th, 2011 - 10:19
Под armv6 работает только iphone 3G и все что было выпущено ранее. Более современные модели исполняют armv7 код. Кроме того, начиная с iOS 5 SDK архитектура armv7 стала используемой по-умолчанию.
Так что ничего страшного в этом предупреждении нет.
July 27th, 2011 - 10:46
Спасибо большое за ответы. Попробовал скачать эпловский GLImageProcessing и прикрутить к нему последние твои binaries. Все работает. Буду пробовать дальше.
July 28th, 2011 - 05:34
Создал новый проект и добавил в него 2 новых файла:untitled.cpp и untitled.h, в котором указал #include . Затем в файле контроллера, который создается автоматически при создании проекта подключил untitled.h. При компиляции ошибка: opencv/include/opencv2/core/core.hpp:425:0 opencv/include/opencv2/core/core.hpp:425: error: statement-expressions are allowed only inside functions. Читал в комментах, про эту проблему. Все решения описанные там не подходят. Может подскажите еще что-нибудь?
July 28th, 2011 - 08:35
Если в двух словах – нельзя, чтобы в одной единице компиляции присутствовал код из OpenCV и любого фреймворка iOS. Конфликтует макрос MAX из OpenCV c одноименной функцией из Foundation.
Поэтому, следует всеми силами стараться избежать включения заголовочных файлов в любые классы ViewController-ов и им подобных.
В своих проектах я разношу код, использующий OpenCV в отдельныые cpp файлы, а наружу (в сторону Obj-C) “торчат” тонкие интерфейсы без упоминания OpenCV.
В крайнем случае (приватная функция содержащая OpenCV-тип в сигнатуре) – можно применить предварительное объявление.
На днях, если найду время, напишу более подробный пост.
July 29th, 2011 - 06:44
Т.е. заголовочные файлы opencv подключаются не в h-файле, который затем подключается к файлу контроллера, а в cpp-файл, чтобы в h-файле не было упоминания opencv? Я кстати убил ошибку, удалив все инклуды из pch-файла, как советовали в комментариях. Счас другая проблема. При попытке использования функций imread, cvLoadImage линкер выдает: “_cvLoadImage”, referenced from: Func1(float (*) [4], float (*) [4], float (*) [4])in untitled.o
ld: symbol(s) not found
July 29th, 2011 - 08:43
Функции из модуля highgui не поддерживаются.
July 29th, 2011 - 09:33
Получается изображения в матрицы можно загружать только руками?
July 29th, 2011 - 09:36
Да, грузишь UIImage, потом вытаскиваешь из него CGImage, а оттуда – непосредственно данные изображения.
July 29th, 2011 - 09:46
А зачем тогда либы типа liblibjpeg.a, liblibpng.a. Я так понимаю что именно их и используют функции imread, cvImageLoad… А раз highgui не поддерживается, то и эти либы не нужны. Или я не прав?
July 29th, 2011 - 09:51
Ну как-бы да
July 29th, 2011 - 16:50
Блин, вылетает на grabCut…..
July 28th, 2011 - 05:36
1-ая строка в предыдущем посте должна выглядеть так: Создал новый проект и добавил в него 2 новых файла:untitled.cpp и untitled.h, в котором указал #include .
July 28th, 2011 - 05:37
Блин, в общем инклуд, подключающий opencv
March 16th, 2012 - 03:43
Can you upload precompiled binaries for OpenCV 2.3.1 for iOS?