Несовместимые типы: RGBColor [][] нельзя преобразовать в Double [][] -Error

Мне нужна небольшая помощь с чем-то, что сводит меня с ума. Немного информации о коде

  1. Пиксель 3 цвета красный, зеленый и синий.
  2. RGBColor [] [] представляет массив пикселей.
  3. RGBImage[][] представляет массив RGBColor. В каждой ячейке массива RGBImage[][] есть объект RGBColor.
  4. convertToGrayscale () - это метод, который преобразует каждый пиксель в его значения в градациях серого.
  5. Существует также метод toString () класса RGBImage, который распечатывает изображение со всеми его значениями - массивом объектов RGBColor.

Проблема - я хочу, чтобы метод toGrayscaleArray () использовал метод convertToGrayscale (). Поэтому я построил цикл for, который преобразует каждую ячейку массива в градации серого. но когда я пытаюсь вернуть _rgbimage, который теперь преобразован, я получаю типы, несовместимые с ошибками компилятора : RGBColor [] [] не может быть преобразован в Double [] []

Любая помощь приветствуется.

    /** returns grayscale representation of the image
    * @return grayscale representation of the image
    */
    public double [][] toGrayscaleArray()
    {
    int row = _rgbimage.length;
    int col = _rgbimage[0].length;

    for (int i = 0; i < row; i++)
        for (int j = 0; j < col; j++)
        {
            _rgbimage[i][j].convertToGrayscale();

        } 
    return _rgbimage; //THE COMPILER ERROR IS HERE
}

ToString () - метод был протестирован и работает правильно.

/** creates a string of matrix which represents the image, in the following format:
 * (red,green,blue) (red,green,blue) (red,green,blue)
 * (red,green,blue) (red,green,blue) (red,green,blue)
 * (red,green,blue) (red,green,blue) (red,green,blue)
 * @return toString
 */
public String toString ()
{
    int rows = _rgbimage.length; 
    int cols = _rgbimage[0].length;
    String imageMatrix = new String("");
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            if (j < cols-1) //checks if it's the last cell on the row
                imageMatrix += _rgbimage[i][j] + " "; //if not last cell - add space
            else 
                imageMatrix += _rgbimage[i][j]; //if last cell - don't add space             
        }
        imageMatrix += "\n";
    }
    return imageMatrix;
    }

0 ответов

Другие вопросы по тегам