Mat对象上的按位运算如何工作?

时间:2019-06-08 17:03:19

标签: c++ opencv mat

我正在解决一个示例问题,尝试使用Python在图像上获取超像素及其颜色。当使用给定的方法时,我得到了超像素的黑白图像。为了获得彩色图像,我正在研究一个C ++示例,这是此类的唯一示例类型,但是我不了解发生了什么。

SuperpixelSLIC.getLabels()返回一个CV_32SC1整数数组,我想获取存储在该数组中的超像素的颜色

我正在阅读的示例是用C ++编写的,并通过以下方法获取超像素的颜色

(labels是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;

我不明白这是怎么回事。 Mat上的按位移位如何工作,它对CV_32SC1数组中存储的每个整数执行移位吗?

此外,颜色信息如何存储在CV_32SC1中?

0 个答案:

没有答案