OpenCV java получава стойности от скалар

Написах рутина за обработка на изображения с OpenCV в C++.

В момента конвертирам кода си в Java, защото имам повече умения за Java от C++.

Използвам Scalar Datatype от библиотеката org.opencv.core.Scalar.

В C++ успях да извлека единични скаларни стойности точно като тази

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];

Въпреки че е малко необичайно да се осъществява директен достъп до полетата, те не предоставят метод за получаване в API, така че това е правилният начин да го направите.

Скалар

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