2014-09-22 51 views
-2

我有以下一段代碼用於圖像處理,使用庫CImg。點運算符C++

for (int y = 0; y < height; y++) 
    for (int x = 0; x < width; x++) { 
     width = in. 
     float weight = strength*x*(xmax-x)*y*(ymax-y)/(xmax*xmax)/(ymax*ymax); 
     int new_x = (int) ((1-weight)*x + weight*  y * xmax/ymax); 
     int new_y = (int) ((1-weight)*y + weight*(xmax-x)* ymax/xmax); 
     out(x,y) = in(new_x,new_y); 
    } 

這是什麼意思是在循環開始時的以下行?

width = in. 

'width'和'in'分別是一個int和之前聲明的CImg對象。

謝謝。

+4

該行意味着代碼有語法錯誤。 – interjay 2014-09-22 14:17:23

+1

你剛剛砍掉'dimx();'? – 2014-09-22 14:18:37

+0

@Niall在代碼的其他部分沒有像你的那樣的行。 – charles 2014-09-22 14:21:57

回答

6

該行是語法錯誤,不會通過編譯。它很可能是偶然粘貼在那裏的。

谷歌搜索的代碼給出this,其包含相同的代碼,而無需該行:

for (int y = 0; y < height; y++) 
    for (int x = 0; x < width; x++) { 
    float weight = strength*x*(xmax-x)*y*(ymax-y)/(xmax*xmax)/(ymax*ymax); 
    int new_x = (int) ((1-weight)*x + weight*  y * xmax/ymax); 
    int new_y = (int) ((1-weight)*y + weight*(xmax-x)* ymax/xmax); 
    out(x,y) = in(new_x,new_y); 
    } 

代碼的另一部分包含行const int width = in.dimx();,這可能是偶然的複製/粘貼的來源。

+1

答案沒有'總是必須很複雜才能獲得upvotes。從我+1;) – 2014-09-22 14:29:00