Java-参数未按预期传递到函数中
我正在尝试运行一个方法rgbScore(),该方法传入以前方法中的参数,以计算图像两个像素之间的差值。我希望结果是两个像素之间的差异,但我得到的是(0,0,0) 我在类的顶部声明了变量,如下所示:Java-参数未按预期传递到函数中,java,function,parameters,rgb,Java,Function,Parameters,Rgb,我正在尝试运行一个方法rgbScore(),该方法传入以前方法中的参数,以计算图像两个像素之间的差值。我希望结果是两个像素之间的差异,但我得到的是(0,0,0) 我在类的顶部声明了变量,如下所示: public int filteredred; public int filteredgreen; public int filteredblue; public int originalred; public int originalgreen; public int originalblue;
public int filteredred; public int filteredgreen; public int filteredblue;
public int originalred; public int originalgreen; public int originalblue;
<附加信息>
filteredrgbValue()
原始RGB值()
看起来您从未初始化过变量,只是声明了变量。
int的defualt VAL为0,在您不初始化VAR之前,它将具有默认VAL。您正在方法中创建新变量,这些变量隐藏了您的成员变量。删除类型声明,例如:
public String filteredrgbValue(){
BufferedImage filtered = filteredImage;
Color filteredRGBValue = new Color(filtered.getRGB(125, 125));
// you are declaring new variables here, hiding your member variables...
//int filteredred = filteredRGBValue.getRed();
//int filteredgreen = filteredRGBValue.getGreen();
//int filteredblue = filteredRGBValue.getBlue();
filteredred = filteredRGBValue.getRed();
filteredgreen = filteredRGBValue.getGreen();
filteredblue = filteredRGBValue.getBlue();
return fRGBValue = "(" + filteredred + "," + filteredgreen + "," + filteredblue + ")";
}
您是否为
int
声明赋值?考虑写一个说明问题的方法。记住,我没有给变量赋值,因为我想让它们使用函数中生成的值?我怎样才能越过这个障碍?谢谢!我需要在哪里初始化它们?它看起来会像这样吗<代码>filteredred=filteredred代码>。。。如果是,我会把它放在哪里?这是什么方法?filteredrgbValue();原始RGB值();初始化是给这些变量赋值。。这些方法正在进行初始化吗?filteredrgbValue()
从过滤后的图像和原始RGB值()中获取RGB值代码>从原始图像获取RGB值。它们都返回RGB值。我想减去R,G,B通道得到一个新的R,G,B值…..这是两个函数>>@eamuldowne请用附加代码编辑您的帖子。不要发布代码的图片链接。非常感谢!修正了!:-)@如果你的问题解决了,请考虑将答案标记为正确的解决方案。
public int filteredred; public int filteredgreen; public int filteredblue;
public int originalred; public int originalgreen; public int originalblue;
public String filteredrgbValue(){
BufferedImage filtered = filteredImage;
Color filteredRGBValue = new Color(filtered.getRGB(125, 125));
int filteredred = filteredRGBValue.getRed();
int filteredgreen = filteredRGBValue.getGreen();
int filteredblue = filteredRGBValue.getBlue();
return fRGBValue = "(" + filteredred + "," + filteredgreen + "," + filteredblue + ")";
}
public String originalrgbValue(){
BufferedImage original = unfilteredImage;
Color originalRGBValue = new Color(original.getRGB(125, 125));
int originalred = originalRGBValue.getRed();
int originalgreen = originalRGBValue.getGreen();
int originalblue = originalRGBValue.getBlue();
return oRGBValue = "(" + originalred + "," + originalgreen + "," + originalblue + ")";
}
public String filteredrgbValue(){
BufferedImage filtered = filteredImage;
Color filteredRGBValue = new Color(filtered.getRGB(125, 125));
// you are declaring new variables here, hiding your member variables...
//int filteredred = filteredRGBValue.getRed();
//int filteredgreen = filteredRGBValue.getGreen();
//int filteredblue = filteredRGBValue.getBlue();
filteredred = filteredRGBValue.getRed();
filteredgreen = filteredRGBValue.getGreen();
filteredblue = filteredRGBValue.getBlue();
return fRGBValue = "(" + filteredred + "," + filteredgreen + "," + filteredblue + ")";
}