OpenCV Java получает значения из скаляра

Я написал процедуру обработки изображений с помощью OpenCV на С++.

Прямо сейчас я конвертирую свой код в Java, потому что у меня больше навыков работы с Java, чем с C++.

Я использую скалярный тип данных из библиотеки org.opencv.core.Scalar.

В С++ я смог извлечь одиночные скалярные значения так же, как это

Scalar scalar = Scalar(1.0,2.0,3.0);
double value1 = scalar[0];

Если я делаю это на Java, я получаю сообщение об ошибке «Требуется массив, но найден скаляр».

Как я могу получить отдельные значения из скаляра в Java?


person Captain Awesome    schedule 08.03.2014    source источник


Ответы (1)


Поскольку поле Scalars val общедоступно, вы можете просто сделать

double value1 = scalar.val[0];

Хотя прямой доступ к полям немного необычен, они не предоставляют метод get в API, так что это правильный способ сделать это.

Скаляр

person James Barnett    schedule 08.03.2014
comment
Но обязательно помните, в каком порядке вы вводите значения, т. е. в RGB или BRG, поскольку это не точный формат, как в Класс точек Java - person GiriB; 26.09.2015