总是忘记caffe blob和mat转化之间的行列优先级关系,索性写个博客.
例如,caffe某个blob的维度是(14,3,216,176),这个表示height=216,width=176,caffe是行优先的,也就是blob.cpu_data得到的指针(dataptr)
dataptr[1]=blob.data_at(0,0,0,1)
更一般的,
dataptr[n*channels*height*width+c*height*width+h*width+w]=blob.data_at(n,c,h,w)
接下来说一说opencv的Mat,假定Mat也是(3,216,176),rows=216=height, cols=176=width,
则mat.at<cv::Vec3f>(x,y)指的是第x行列的数据(例如at(78,40)值得是第78行第40列的数据)