Как управлять отдельными пикселями в изображении Mat в OpenCV 3.0.0-1.1 Java API

До сих пор в предыдущих версиях OpenCV JAVA API предлагалось get() а также put() методы для извлечения и управления отдельными пикселями в изображении Mat. Но в Java API OpenCV 3.0.0-1.1 эти методы устарели. Итак, как можно управлять отдельными пикселями в этой версии.

Вот список устаревших методов: http://bytedeco.org/javacpp-presets/opencv/apidocs/deprecated-list.html

Когда я использую put() метод в HIPI v2.0 (который поддерживает последний API OpenCV), я получаю следующую ошибку:

Изображение, показывающее ошибку

Что я могу сделать, чтобы изменить определенные пиксели (учитывая индексы)?

1 ответ

Решение

Рекомендуемый подход - через индексатор, представленный в этом посте:
http://bytedeco.org/news/2014/12/23/third-release/

Так, например, в случае типичного 8-битного изображения BGR/RGB:

UByteIndexer idx = mat.createIndexer();
idx.put(x, y, z, 255);
assert idx.get(x, y, z) == 255;
Другие вопросы по тегам