2013-04-18 159 views
0

我正在尝试使用GPU模糊图像。我会写我自己的GPU例程。我正在使用Opencv2库进行图像读取。如何获取图像uchar阵列的实际长度opencv2

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

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

我也可以弄清楚,我可以访问UCHAR *阵列 -

uchar * data = im.data; 

现在的问题是,有投入本作填充字节效率的目的。这意味着这个数组的大小可能超过(或等于)width * height * channels。

如何获得

  • 一)这个数组
  • B)可变像widthStep什么递增 行方向的实际尺寸?

回答

0

你需要什么是所谓步幅台阶宽度
你可以用im.step访问它,如:

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

这个怎么样UCHAR *阵列的总长度(考虑填充字节)? – mkuse 2013-04-18 06:29:25

+0

'stepWidth * im.rows' – 2013-04-18 06:45:00

+0

是这种乘法真的很有必要。有没有可以给这个数字的内部变量? – mkuse 2013-04-18 10:40:31