Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Запись в массив значений цветовой модели изображения / 4 сообщений из 4, страница 1 из 1
03.04.2013, 23:25:25
    #38211979
Rubaki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в массив значений цветовой модели изображения
Здравствуйте, проверил весь цикл, всё оказывается рабочим кроме заполнения конечного массива, при записи в массив ограничивается двумерный массив значениями i = 0 ,а j проходит полностью.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
import java.awt.Color;
import java.awt.Image;
import java.awt.image.BufferedImage;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Rubaki
 */

public class Chek {
    private BufferedImage image;


    public Chek(Image img) {
        image = (BufferedImage) img;
    }
    
    public void ras4et(){
        //Color [][] result = new Color[image.getHeight()][image.getWidth()];
        int [][] redMatrix = new int[image.getHeight()][image.getWidth()];
        System.out.println(image.getHeight()+ " "+ image.getWidth() + "\n");
        
                    for (int i = 0; i < redMatrix.length; i++) { 
                        System.out.println(" " +i);
                        for (int j = 0; j < redMatrix[i].length; j++) {
                            System.out.print(" " +j);
                    //redMatrix[i][j] = new Color(image.getRGB(i, j)).getRed();
                           redMatrix[i][j] = i + j;
                    System.out.println("Цикл"+ " " +i +" "+ j +" "+ redMatrix[i][j] +" "+ new Color(image.getRGB(i, j)).getRed());
                        }
                    }
    }
    
}
...
Рейтинг: 0 / 0
04.04.2013, 10:17:49
    #38212312
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в массив значений цветовой модели изображения
image.getHeight() точно логируется больше 1?
...
Рейтинг: 0 / 0
04.04.2013, 14:12:45
    #38212880
Rubaki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в массив значений цветовой модели изображения
Да размеры норм выводит. Уже разобрался с вопросом.Всем спасибо.
...
Рейтинг: 0 / 0
04.04.2013, 14:22:06
    #38212899
Rubaki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в массив значений цветовой модели изображения
Вышло вот так: Как я понимаю new Color(image.getRGB(j, i)) требует только массива типа Color и не получалось записать значения в массив типа int, и понятно т.к. он выводит 3 значения r g b, а вот когда мы выполняем метод и берём какой-то конкретный метод цвета, то уже значение получается типа int. Только вот не совсем понимаю перестановку значений пробегающих по циклу в строке result[i][j] = new Color(image.getRGB(j, i)); Если в getRGB(j, i) не менять переменные цикла, то всё равно не хочет работать, а так, что очень странно работает на весь цикл шириной и длиной изображения. Да и вроде не выводится один и тот-же цикл (Проверял значения со сменой переменных цикла).

import java.awt.Color;
import java.awt.Image;
import java.awt.image.BufferedImage;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author Ameliya
*/
public class ModelProject {
private BufferedImage image;
private double summ;
private double M;
private double param;
private double D;

public ModelProject(Image img) {
image = (BufferedImage) img;
}

public void Matrix(){
Color[][] result = new Color[image.getHeight()][image.getWidth()];
int[][] redMatrix = new int[image.getHeight()][image.getWidth()];
int[][] greenMatrix = new int[image.getHeight()][image.getWidth()];
int[][] blueMatrix = new int[image.getHeight()][image.getWidth()];
double[][] grayScale = new double[image.getHeight()][image.getWidth()];
M = 0;
param = 0;

for (int i = 0; i < result.length; i++) {
for (int j = 0; j < result[i].length; j++) {
//i - высота
//j - ширина
result[i][j] = new Color(image.getRGB(j, i));
redMatrix[i][j] = (result[i][j]).getRed();
greenMatrix[i][j] = (result[i][j]).getGreen();
blueMatrix[i][j] = (result[i][j]).getBlue();
grayScale[i][j] = (0.299 * redMatrix[i][j] + 0.587 * greenMatrix[i][j] + 0.114 * blueMatrix[i][j]);
summ = summ + grayScale[i][j];
}
}
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Запись в массив значений цветовой модели изображения / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]