Итерация по каждому пикселю Mat в EmguCV - PullRequest
0 голосов
/ 16 мая 2018

Я хочу присвоить значение каждому пикселю Mat в EmguCV, используя C #. Я прочитал документацию, но не могу это сделать. Я могу сделать это с Image, но я хочу сделать это с Mat. Итак, может кто-нибудь, пожалуйста, скажите мне, как это сделать.

1 Ответ

0 голосов
/ 17 мая 2018

В 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.Надеюсь, это поможет.

...