Массив пикселей хранится в атрибуте «data» в cv :: Mat.Давайте предположим, что у нас есть матрица Mat, где каждый пиксель имеет 3 байта (CV_8UC3).
Для этого примера давайте нарисуем КРАСНЫЙ пиксель в позиции 100x50.
Mat foo;
int x=100, y=50;
Решение 1:
Создайте функцию макроса, которая получает пиксель из массива.
#define PIXEL(frame, W, x, y) (frame+(y)*3*(W)+(x)*3)
//...
unsigned char * p = PIXEL(foo.data, foo.rols, x, y);
p[0] = 0; // B
p[1] = 0; // G
p[2] = 255; // R
Решение 2:
Получите пиксель, используя метод ptr.
unsigned char * p = foo.ptr(y, x); // Y first, X after
p[0] = 0; // B
p[1] = 0; // G
p[2] = 255; // R