В EmguCV вы можете использовать метод Data
для получения значения каждого пикселя, но, как написано в Документации, вы не можете перераспределить его.Из вашего вопроса я узнаю, что вы хотите поместить значение цвета каждого пикселя в переменную класса Mat
.Если это проблема, вы можете увидеть приведенный ниже код, который идеально подходит для меня.
Byte[,,] color = new Byte[256, 1, 3];
int i = 0;
for (double x = 0; x < palette.Rows;)
{
color[i, 0, 0] = palette.Data[(int)x, palette.Width / 2, 0];
color[i, 0, 1] = palette.Data[(int)x, palette.Width / 2, 1];
color[i, 0, 2] = palette.Data[(int)x, palette.Width / 2, 2];
i++;
x = x + 3.109;
}
Mat lut = new Mat(256, 1, DepthType.Cv8U, 3);
lut.SetTo(color);
Я использовал этот подход во время псевдоокрашивания изображения любой цветовой палитрой.Я создал 3-х мерный массив и, используя SetTo
метод класса Mat
, я только что присвоил этот массив Mat
.Надеюсь, это поможет.