繁体   English   中英

此代码是什么意思? OpenCV的

[英]What does this code mean? OpenCV

我可以知道x代表什么吗? ()内的内容是否表示一个指针? 那么[]是数组的元素?

 x = (df_dx->imageData+i*df_dx->widthStep)[j]; 

如果我这样说为什么它不起作用?

 x=df_dx[2][j];

是否

->imageData

给出图像的像素值? 完整的代码如下。 谢谢

float x;
IplImage*df_dx = cvCreateImage(cvGetSize(grayimg),IPL_DEPTH_16S,1); 


for(int i=0;i=grayimg->height;i++)
{
for(int j=0;grayimg->width;j++)
{

x = (df_dx->imageData+i*df_dx->widthStep)[j]; 
}
}

简短的答案:

  • x是矩阵df_dx第j行第i列的元素
  • df_dx->imageData返回指向数组第一个元素的指针(左上)

对于以平面一维数组形式存储在内存中的2d矩阵,以这种方式访问​​矩阵元素实际上是很常见的(例如,对于另一个库的类似示例,请参见GSL矩阵访问 ;对于类似的问题,也请参见此帖子 )。

将矩阵存储为数组数组(即使用[][]进行访问)绝对是可以管理的,并且许多人选择使用此表示形式,但是出于某些原因 ,人们倾向于使用内存中的平面布局。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM