我正在解决一个示例问题,尝试使用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中?