请opencv的大神告诉我一下,下面这段话是什么意思。
(开头的声明CvMat*TrainImgs_row)float*ptr=(float*)(TrainImgs_row->data.fl+a*TrainImgs_row->...
(开头的声明CvMat* TrainImgs_row)
float* ptr=(float*)(TrainImgs_row->data.fl+a*TrainImgs_row->step/4);
float* ptr2=(float*)row->data.fl;
for(int b=0;b<TrainImgs_row->cols;b++)
{
*ptr = *ptr2;
ptr++;
ptr2++;
} 展开
float* ptr=(float*)(TrainImgs_row->data.fl+a*TrainImgs_row->step/4);
float* ptr2=(float*)row->data.fl;
for(int b=0;b<TrainImgs_row->cols;b++)
{
*ptr = *ptr2;
ptr++;
ptr2++;
} 展开
2个回答
展开全部
float* ptr=(float*)(TrainImgs_row->data.fl+a*TrainImgs_row->step/4);
对于这句来说,TrainImgs_row矩阵中存放的是float型数据,a*TrainImgs_row->step/4其实就是说偏移量为a行,除以4其实是除以sizeof(float),即当做浮点类型数据处理。
所以,ptr是TrainImgs_row第a行的指针。
ptr2是row矩阵第0行的指针。
其实整段代码就是把row矩阵中第0行数据,赋值给了TrainImgs_row矩阵中第a行。
对于这句来说,TrainImgs_row矩阵中存放的是float型数据,a*TrainImgs_row->step/4其实就是说偏移量为a行,除以4其实是除以sizeof(float),即当做浮点类型数据处理。
所以,ptr是TrainImgs_row第a行的指针。
ptr2是row矩阵第0行的指针。
其实整段代码就是把row矩阵中第0行数据,赋值给了TrainImgs_row矩阵中第a行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询