呼如林
像素数组存储在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; // Bp[1] = 0; // Gp[2] = 255; // R解决方案2:使用ptr方法获取像素。unsigned char * p = foo.ptr(y, x); // Y first, X afterp[0] = 0; // Bp[1] = 0; // Gp[2] = 255; // R