Java参数未按预期传递到函数中
我正在尝试运行一个方法rgbScore(),它传入以前方法中的参数,以计算图像两个像素之间的差异。我希望结果是两个像素之间的差异,但我得到的是(0,0,0)
public void TypeButtonPressed()
{
filteredImage(GetType());
int type = GetType();
filteredrgbValue();
originalrgbValue();
rgbScore(originalred, filteredred, originalgreen, filteredgreen, originalblue, filteredblue); //THIS METHOD
JOptionPane.showMessageDialog(null, "Original RGB Value:" + oRGBValue + "\nFiltered RGB Value:" + fRGBValue + "\nScore:" + rgbDiff, Options[type], JOptionPane.INFORMATION_MESSAGE);
}
public String rgbScore(int originalred, int filteredred, int originalgreen, int filteredgreen, int originalblue, int filteredblue){
int redDiff = originalred - filteredred;
int greenDiff = originalgreen - filteredgreen;
int blueDiff = originalblue - filteredblue;
return rgbDiff = "(" + redDiff + "," + greenDiff + "," + blueDiff + ")";
}
我在类的顶部声明了变量,如下所示:
public int filteredred; public int filteredgreen; public int filteredblue;
public int originalred; public int originalgreen; public int originalblue;
<;附加信息>
filteredrgbValue()
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 + ")";
}
原始RGB值()
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 + ")";
}
# 1 楼答案
您正在方法中创建新变量,这些变量隐藏了您的成员变量。删除类型声明,例如:
# 2 楼答案
看起来你从来没有初始化过变量,你只是声明了变量。 int的defualt valu为0,在不初始化VAR之前,它将具有默认VAL