powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Происходит не понятно что...
5 сообщений из 5, страница 1 из 1
Происходит не понятно что...
    #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
Происходит не понятно что...
    #38467427
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очевидно где-то путаница в строках и столбцах, потому что getRGB(y, x) это вынос мозга любому кто попробует понять ваш код.
...
Рейтинг: 0 / 0
Происходит не понятно что...
    #38467444
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczочевидно где-то путаница в строках и столбцах, потому что getRGB(y, x) это вынос мозга любому кто попробует понять ваш код.
не думаю, что путаница в скобках, разве IDE не отлавливает такие вещи на ура?
а что не понятно с getRGB(y, x) ? это же int java.awt.image.BufferedImage.getRGB(int x, int y)
...
Рейтинг: 0 / 0
Происходит не понятно что...
    #38467446
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поторопился... прочитал как скобки вместо строки
...
Рейтинг: 0 / 0
Происходит не понятно что...
    #38467466
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
точно. перепутал строки-столбцы.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Происходит не понятно что...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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