Как управлять отдельными пикселями в изображении 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;