如何获取图像uchar数组的实际长度opencv2

时间:2013-04-18 06:03:36

标签: opencv

我正在尝试使用GPU模糊图像。我将编写自己的GPU例程。我正在使用Opencv2库进行图像读取。

我想访问图像数组(uchar *),为此我想通了;我可以做以下

cv::Mat im = imread( 'lena.jpg');

我还可以弄清楚我可以访问uchar *数组 -

uchar * data = im.data;

现在的问题是,为了提高效率,有一些填充字节。这意味着此数组的大小可能大于(或等于)width * height * channels。

如何获得

  • a)此数组的实际大小
  • b)像widthStep这样的变量或者用于递增的东西 逐行??

1 个答案:

答案 0 :(得分:0)

您需要所谓的 stride 步宽
您可以使用im.step访问它,如:

cv::Mat im = imread( 'lena.jpg');
uchar * data = im.data;
int stepWidth = im.step;