2014-09-22 95 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