我正在尝试创建一种方法,该方法将获取图像中的所有红色值并仅显示红色值。我在使用getRedImage()方法时遇到麻烦。我对此并不陌生,任何帮助将不胜感激!
public class SimpleRGB { private int width, height; private int[][] red = new int[1000][1000];
这部分获取红色值并将其设置为我的2D红色数组的指定位置:
public void setRed(int x, int y, int aRed) { red[x][y] = aRed; }
这部分在坐标(x,y)处获取红色值并返回:
public int getRed(int x, int y) { int thisr = red[x][y]; return thisr; }
我不确定该如何措辞。我知道我需要创建一个新的SimpleRGB对象以返回,然后使用嵌套的for循环将我的新简单RGB对象的红色2D数组设置为该simpleRGB对象的红色2D数组,然后使用嵌套的for循环将绿色和蓝色2D数组值都设置为全零。我只是不确定如何执行此操作。
public SimpleRGB getRedImage() { // This is where I am confused. } }
我终于想通了:
public SimpleRGB getRedImage() { SimpleRGB redImage = new SimpleRGB(width, height); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { redImage.setRed(i, j, getRed(i, j)); redImage.setGreen(i, j, getGreen(i, j, 0); redImage.setBlue(i, j, getBlue(i, j, 0)); } } return redImage; }
我的基本结构正确,但是我更改了此红色/绿色/蓝色,而不是添加redImage.setRed来修改NEW对象。