Dlaczego zapis *data++=255 musi istnieć, aby program działał?

0

Witam,

uchar *nhs_data = img_nhs.ptr<uchar> (i);
*nhs_data++=255;

Robię w programie wykrywanie barwy. Jeżeli spełnia warunek to ustawia kolor czarny, jezeli piksel nie spelnia to kolor biały. Chciałbym zapytać, dlaczego muszą być ++=255, żeby program działał?

0

To nie jest ++=, tylko: (*nhs_data++) = 255;

0

To jest najprawdopodobniej ustawianie kanału alpha na 0xFF (nieprzezroczystość) i jednocześnie przesunięcie pointera kolejny bajt.
Kod:

uchar *nhs_data = img_nhs.ptr<uchar> (i);
*nhs_data++=255;

jest równoważny z:

uchar *nhs_data = img_nhs.ptr<uchar> (i);
*nhs_data=255;
nhs_data++;
0
supermario napisał(a):

Chciałbym zapytać, dlaczego muszą być ++=255, żeby program działał?

Bo tak sobie to wykombinował autor. Zawsze możesz tę linijkę rozbić na dwie, aby było czytelnie. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1