Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Происходит не понятно что... / 5 сообщений из 5, страница 1 из 1
16.11.2013, 19:31:09
    #38467420
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Происходит не понятно что...
Запутался в трех соснах, может на свежий взгляд проще понять почему вылазит ошибка?
Этот код последовательно сравнивает пиксели в двух изображениях.
Изображения высотой 1 и длинной 5 пикс.
Почему ошибка стразу на втором столбце (вывод: стобец 1, так как начинается с 0) ?
В выводе почему-то появляется отрицательное значение...
и откуда берется перед выводом шаблона java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds! ?!

Код: 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.
40.
41.
42.
43.
44.
  ........
                out.println("strok = "+heightImg1 + "   stolbcov = "+widthImg1);
		out.println();
		
		boolean matrix[][] = new boolean[heightImg1][widthImg1]; //шаблон
		
		for (int y=0; y < heightImg1; y++) { //строки
			for(int x=0; x < widthImg1; x++) { //столбцы
				out.print(matrix[y][x]);
				out.print(" ");
			}
			out.println();
		}
		
		if((widthImg1 != widthImg2) || (heightImg1 != heightImg2)) {
			println("Размеры изображений не идентичны");
			try {
				throw new Exception();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}		
		
		// внешний цикл
		for (int y = 0; y < heightImg1; y++) { //строки
			
			System.out.println("строка " + y);
			
			for (int x = 0; x < widthImg1; x++) { //столбцы
				
				out.println("столбец " + x);
				out.print (img1.getRGB(x, y) + " ");
				out.println ();
				
				if (matrix[y][x] == true) { // проверка по шаблону
					System.out.println("continue из внешнего");
					continue;
				}
				
				println("Math.abs(img1.getRGB(y, x) "+Math.abs(img1.getRGB(y, x)));
				println("Math.abs(img2.getRGB(y, x) "+Math.abs(img2.getRGB(y, x)));
				percDiff = measureDiff(Math.abs(img1.getRGB(y, x)), Math.abs(img2.getRGB(y, x)));	// !
				out.println("percDiff "+percDiff);
........


и вывод
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
strok = 1   stolbcov = 5

java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!
false false false false false 
строка 0
столбец 0
-3328 
Math.abs(img1.getRGB(y, x) 3328
Math.abs(img2.getRGB(y, x) 3328
percDiff 0
столбец 1
-3328 
	at sun.awt.image.ByteInterleavedRaster.getDataElements(ByteInterleavedRaster.java:318)
	at java.awt.image.BufferedImage.getRGB(BufferedImage.java:888)
	at diff.CalculateDiff.perform(CalculateDiff.java:71)
        ..................
...
Рейтинг: 0 / 0
16.11.2013, 19:44:13
    #38467427
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Происходит не понятно что...
очевидно где-то путаница в строках и столбцах, потому что getRGB(y, x) это вынос мозга любому кто попробует понять ваш код.
...
Рейтинг: 0 / 0
16.11.2013, 20:09:10
    #38467444
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Происходит не понятно что...
Blazkowiczочевидно где-то путаница в строках и столбцах, потому что getRGB(y, x) это вынос мозга любому кто попробует понять ваш код.
не думаю, что путаница в скобках, разве IDE не отлавливает такие вещи на ура?
а что не понятно с getRGB(y, x) ? это же int java.awt.image.BufferedImage.getRGB(int x, int y)
...
Рейтинг: 0 / 0
16.11.2013, 20:10:17
    #38467446
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Происходит не понятно что...
поторопился... прочитал как скобки вместо строки
...
Рейтинг: 0 / 0
16.11.2013, 20:58:33
    #38467466
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Происходит не понятно что...
Blazkowicz,
точно. перепутал строки-столбцы.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Происходит не понятно что... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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