C++ 点运算符C++;
我有下面一段使用CImg库进行图像处理的代码C++ 点运算符C++;,c++,image-processing,cimg,C++,Image Processing,Cimg,我有下面一段使用CImg库进行图像处理的代码 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
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”分别是前面声明的int和CImg对象
谢谢。那一行是语法错误,无法通过编译。它很可能是意外粘贴在那里的 谷歌搜索代码给出,其中包含相同的代码,但没有该行:
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);
}
for(int y=0;y
代码的另一部分包含行
const int width=in.dimx()代码>,这可能是意外复制/粘贴的来源。这一行表示代码有语法错误。您刚才是否删除了dimx()代码>?@Niall在代码的另一部分没有像您这样的行。@INTRAY代码运行得很好。@WOTERHUYSENTRUIT宽度的声明是:const int width=in.dimx();但在这个循环中,答案并不一定要复杂才能获得选票+从我这里;)
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);
}