Computer Vision Talks All you want and should know about computer vision is here

3Jul/1124

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:

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.

Tagged as: Leave a comment
Comments (24) Trackbacks (2)
  1. An idea for the official release of version 2.3?

  2. I mean, for a date?

  3. I think i will be released in this month.

  4. Я так понимаю версия 2.3 доступна и для iOS? Не подскажешь (можно ссылками) как быстро прикрутить openCV 2.3 к XCode-у?

    • Привет.
      Проще всего взять настроенный проект тут: https://github.com/BloodAxe/opencv-ios-template-project, удалить все сорцы, заменить бинари и заголовочные файлы новым OpenCV и добавить свой код.

      • Ну а если делать самому – я правильно понимаю, что могу просто взять precompiled binaries, создать проект, указав пути к binaries и этого будет достаточно? Или мне при этом надо будет делать еще что-то?

        • Необходимый минимум настроек проекта для XCode:
          1) Указать путь поиска заголовочных файлов
          2) Указать путь поиска статических библиотек (Для Debug и Release разные пути)
          3) Указать линковщику список библиотек, которые нужно линковать.

          Удачи!

  5. Скачал настроенный проект. Работает. Заменил папку opencv на последнюю отсюда http://computer-vision-talks.com/download/opencv-2.3-ios-precompiled.zip. Тоже работает. Но если сразу не компилить, а только после замены папки opencv на последнюю то при попытке компиляции возникает ошибка “ld: library not found for -lopencv_lapack” Я просто удалил ссылку на эту либу в свойствах проекта и заработало, но вот правильно ли это?… Т.е. если сначала откомпилить как есть, а потом заменить папку opencv – работает, а если заменить сначала а потом откомпилить – нет

    • Lapack был удален из ветки 2.3 и более не используется. Настроенный проект создавался во времена OpenCV 2.2 и потому ссылка на opencv_lapack все еще присутствует. Ее можно безболезненно удалить.

  6. И еще. Если скомпилить проект по твоей ссылке не для симулятора, а для девайса, то выдает такую ошибку: 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.

    • Под armv6 работает только iphone 3G и все что было выпущено ранее. Более современные модели исполняют armv7 код. Кроме того, начиная с iOS 5 SDK архитектура armv7 стала используемой по-умолчанию.
      Так что ничего страшного в этом предупреждении нет.

  7. Спасибо большое за ответы. Попробовал скачать эпловский GLImageProcessing и прикрутить к нему последние твои binaries. Все работает. Буду пробовать дальше.

  8. Создал новый проект и добавил в него 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. Читал в комментах, про эту проблему. Все решения описанные там не подходят. Может подскажите еще что-нибудь?

    • Если в двух словах – нельзя, чтобы в одной единице компиляции присутствовал код из OpenCV и любого фреймворка iOS. Конфликтует макрос MAX из OpenCV c одноименной функцией из Foundation.
      Поэтому, следует всеми силами стараться избежать включения заголовочных файлов в любые классы ViewController-ов и им подобных.
      В своих проектах я разношу код, использующий OpenCV в отдельныые cpp файлы, а наружу (в сторону Obj-C) “торчат” тонкие интерфейсы без упоминания OpenCV.
      В крайнем случае (приватная функция содержащая OpenCV-тип в сигнатуре) – можно применить предварительное объявление.

      На днях, если найду время, напишу более подробный пост.

      • Т.е. заголовочные файлы 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

        • Функции из модуля highgui не поддерживаются.

          • Получается изображения в матрицы можно загружать только руками?

          • Да, грузишь UIImage, потом вытаскиваешь из него CGImage, а оттуда – непосредственно данные изображения.

          • А зачем тогда либы типа liblibjpeg.a, liblibpng.a. Я так понимаю что именно их и используют функции imread, cvImageLoad… А раз highgui не поддерживается, то и эти либы не нужны. Или я не прав?

          • Ну как-бы да :)

          • Блин, вылетает на grabCut…..

  9. 1-ая строка в предыдущем посте должна выглядеть так: Создал новый проект и добавил в него 2 новых файла:untitled.cpp и untitled.h, в котором указал #include .

  10. Блин, в общем инклуд, подключающий opencv

  11. Can you upload precompiled binaries for OpenCV 2.3.1 for iOS?


Leave a comment

(required)