2
我在看圖像處理算法的掌上手冊(http://adaptiveart.eecs.umich.edu/2011/wp-content/uploads/2011/09/The-pocket-handbook-of-image-processing-algorithms-in-C.pdf),我碰到這個代碼(下面)。圖像處理算法代碼,解釋指針
誰能幫我瞭解
*(Im->Data + (x)*Im->Cols + (y))
這是PDF頁面33
#define pix(Im,x,y) \
*(Im->Data + (x)*Im->Cols + (y))
/* Compute and return area for objects */
int area(struct Image *In, int x1, int y1, int x2, int y2, unsigned char ObjVal){
long i, j, rows;
int area_value = 0;
for(i=x1; i<=x2; ++i)
for(j=y1; j<=y2; ++j){
if(pix(In,i,j)==ObjVal)++area_value;
}
return(area_value);
}
它假定一個2維陣列中,存儲在行優先順序。這就是如何計算m乘n 2D數組中的數據點(x,y)的方式。 – rts1
圖像存儲在一個數組中,二維數組中的p [x] [y]'是'p [x *列+ y]'(或者等價於* *(p + x *列) + y)')。 – molbdnilo
使用現代的C++界面 – dynamic