Obecnie dokonuję konwersji niektórych kodu OpenCV z C++ na Javę. Nie mogę używać JavaCV, ponieważ potrzebujemy konwersji w natywnej Javie, a nie w JNA. W pewnym momencie w kodzie, otrzymuję następujące zadania:W jaki sposób operator Unarius minus działa na wartości logiczne w C++?
dst[x] = (uchar)(-(kHit >= kForeground));
Gdzie dst
jest uchar*
, kHit
i kForeground
są int
s.
Nie udało mi się znaleźć niczego na temat tego, jak to działa, a Java nie rozpozna go jako operacji. Operacja na tych dwóch zmiennych odbywa się w innym punkcie kodu i przechowuje jedną z dwóch wartości: 255 lub 0.
Ten kod pochodzi z opencv/video/src/bgfg_gaussmix.cpp
.
Ma to sens i jest czymś, co mogłem bardzo łatwo przetestować i odkryć na własną rękę. Dziękuję za zwrócenie uwagi na tak zwięzłe. – Wraith967
Technicznie wyrażenie boolowskie daje "true" lub "false', które po awansie do' int' otrzymają wartości "1" lub "0". –