2012-01-02 3 views
0

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

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

Учитывая

OpenCV cv = new OpenCV(); 

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

cv.absDiff(); 

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

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

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

+0

Не удалось? Что ты конкретно имеешь ввиду? –

+0

Метод недоступен, я не могу сделать cv.split (..) // не существует метода split в OpenCV – adhg

ответ

0

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

вы также можете проверить второй ответ, размещенный на этом thread.

+2

В OpenCV теперь есть привязки Java http://opencv.org/opencv-java-api.html – alistair

2

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

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

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

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


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

Смежные вопросы