OpenCV 坐标系
row == height == Point.y
col == width == Point.x
OpenCV Mat 中的 step
以三维为例
step这里指出的是图像在各个梯级上的字节数大小,而这里的梯级指的是构成图像的名层次。
上图三维图像由一个一个名面(第一级)构成,每一个平面由一行一行(第二级)构成,每行由一个一个点(第三级)构成。
同理:二维图像由一行一行(第一级)构成,而每一行又由一个一个点(第二级)构成。
Mat中的step[0]就是我们每一个第一级,在内存中占据的字节数量。例如,二维图像中step[0]就是每一行(第一级)在矩阵内存中,占据的字节的数量。也就是说step[i]就是第i+1级在矩阵内存中占据的字节的数量。
利用data和step对OpenCV mat 访问
//若固定x在图片上即显示为竖向搜索,即沿着y轴搜索,即行向
//若固定y在图片上即显示为横向搜索,即沿着x轴搜索,即列向
for(int y = 0; y < img.rows; y++){
for(int x = 0; x < img.cols; x++){
img.data[y * img.step + x * img.channels() + 0] = 0;
img.data[y * img.step + x * img.channels() + 1] = 0;
img.data[y * img.step + x * img.channels() + 2] = 0;
}
}