openCV в java - хочу использовать метод разделения.

Недавно я начал работать над openCV с использованием java, и пока это выглядит великолепно. Мне удалось обнаружить лица и поиграть с порогом. Так что в основном 101 материал.

Теперь я хочу сделать еще один шаг вперед, я хочу идентифицировать «руки» или «пальцы», но по какой-то причине я заметил, что OpenCV не содержит всех методов (функционалов), которые есть в С++. (Возможно, я ошибаюсь в этом утверждении)

Данный

OpenCV cv = new OpenCV(); 

Я могу сделать это:

cv.absDiff();

НО я не могу использовать другие методы, такие как: split (который выходит из документации openCV, http://opencv.willowgarage.com/documentation/cpp/operations_on_arrays.html#cv-split).

Итак, мой вопрос таков: что мне здесь не хватает, или OpenCV для java ограничен? Я не использовал C++ много лет (поэтому я не помню обозначения).

Спасибо за любые указатели :-)


person adhg    schedule 02.01.2012    source источник
comment
Не могущий? Что ты конкретно имеешь ввиду?   -  person Christian Neverdal    schedule 02.01.2012
comment
Метод недоступен, я не могу выполнить cv.split(..) // в OpenCV не существует метода разделения   -  person adhg    schedule 03.01.2012


Ответы (2)


OpenCv недоступен в Java, как указано здесь. вместо этого следует использовать JavaCV. Он содержит все методы OpenCV.

вы также можете проверить второй ответ, опубликованный в этой ветке.

person Adel Boutros    schedule 02.01.2012

Как я это понял; в основном есть два способа разработки (как более подробно описано здесь); а именно «базовый» и «продвинутый» уровни);

  1. (продвинутый уровень) Использование Android NDK, который содержит все функции OpenCV и имеет дополнительное преимущество в виде более простого использования готового кода C++. Кроме того, он имеет тенденцию быть быстрее с большими конвейерами обработки.

  2. (базовый уровень) Нет необходимости использовать Android NDK. Этот подход использует API OpenCV, предоставленный для java; подмножество (возможно, достаточное, конечно, зависящее от приложения) функций OpenCV. Знание NDK (и, следовательно, C++) не требуется.

Оба метода могут использоваться вместе, в зависимости от потребностей приложения.


Что касается метода split; здесь находится ссылка на документацию по Java. Найдите имя метода split. Чтобы вызвать его, используйте Core.split(m,chnl);, где m — это объект изображения Mat, а chnl — это List, содержащий результирующие отдельные каналы.

person Noha Kareem    schedule 30.01.2013