Как битовые операции работают с объектом Mat? - PullRequest
0 голосов
/ 08 июня 2019

Я работаю над примером проблемы, пытаясь получить суперпиксели с их цветами на изображении, используя Python. Когда я использую данный метод, я получаю черно-белое изображение суперпикселей. Чтобы получить цветное изображение, я работаю на примере C ++, единственном типе примера для этого класса, но я не понимаю часть происходящего.

SuperpixelSLIC.getLabels () возвращает целочисленный массив CV_32SC1, и я хочу получить цвета суперпикселей, хранящихся в этом массиве

Пример, который я читаю, написан на C ++ и получает цвет суперпикселя с помощью метода ниже

(метки - это целочисленный массив CV_32SC1)

        Mat labels;
        slic->getLabels(labels);
        const int num_label_bits = 2;
        labels &= (1 << num_label_bits) - 1;
        labels *= 1 << (16 - num_label_bits);
        imshow(window_name, labels);
        break;

Я не понимаю, что это делает, хотя. Как битовый сдвиг работает на мат, выполняет ли сдвиг каждое целое число, хранящееся в массиве CV_32SC1?

Кроме того, как информация о цвете хранится в CV_32SC1?

...