powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Фильтр кувахара
10 сообщений из 10, страница 1 из 1
Фильтр кувахара
    #38567980
Yerbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
public void shomajan1(int n)
    
    {
     Pixel[][] pixels  = this.get2DPixels();
     int height = this.getHeight();
     int width = this.getWidth();
     int velichizna = height*width;
    
       
      long redValues [][]   = new long [width][height]; 
        long greenValues [][] = new long [width][height];
        long blueValues [][]  = new long [width][height];
        double intensity[][] = new double[width][height];
         double sumintensleftbot[][]= new double [width][height]; 
         double sumintenrightbot[][] = new double [width][height]; 
         double sumintenlefttop[][] = new double [width][height]; 
         double sumintenrighttop[][] = new double [width][height]; 
        double dimensityleftbot[][] = new double [width][height]; 
 double   dimensityrightbot[][] = new double [width][height]; 
  double  dimensitylefttop[][] = new double [width][height]; 
  double  dimensityrighttop[][] = new double [width][height]; 
    
         double sumofredleftbot[][] = new double [width][height]; 
        double  sumofgreenleftbot[][] = new double [width][height]; 
        double  sumofblueleleftbot[][] = new double [width][height]; 
          
        
        double  sumofredrightbot[][] = new double [width][height]; 
        double  sumofgreenrightbot[][] = new double [width][height]; 
        double  sumofbluelerightbot[][] = new double [width][height]; 
          
          
        
        double  sumofredlefttop[][] = new double [width][height]; 
        double  sumofgreenlefttop[][] = new double [width][height]; 
        double  sumofbluelelefttop[][] = new double [width][height]; 
          
          
        
         double sumofredrighttop[][] = new double [width][height]; 
         double sumofgreenrighttop[][] = new double [width][height]; 
         double sumofbluelerighttop[][] = new double [width][height]; 
  
  
  double q=0;
double q1=0;
 double q2=0;
double q3=0;
     for (int x = 0; x < width; x++)
     { 
         for (int y = 0; y < height; y++)
         {
         redValues[x][y]   = pixels[x][y].getRed();
         greenValues[y][y] = pixels[x][y].getGreen();
         blueValues[x][y]  = pixels[x][y].getBlue(); 
         intensity[x][y] = pixels[x][y].getAverage();
     }
 }
  int p;
             
     for (int x = 0; x < width; x++)
     { 
         for (int y = 0; y < height; y++)
         { 
       
             for (int w = 0; x < width-n; w++)
     { 
         for (int h = 0; y < height-n; h++)
         { 
         int left=x-w; if (left<0){left=0;}
         int right=x+w;if (right>width){right=width;}
         int top=y+h;if (top>height) {top=0;}
         int bottom=y-h;if (bottom<0){bottom=height;}
        
        
        
          sumintensleftbot[x][y] = sumintensleftbot[x][y] +  intensity[left][bottom];
          sumofredleftbot[x][y]=sumofredleftbot[x][y]+redValues[left][bottom];
          sumofgreenleftbot[x][y]=sumofgreenleftbot[x][y]+greenValues[left][bottom];
          sumofblueleleftbot[x][y]=sumofblueleleftbot[x][y]+blueValues[left][bottom];
          
          sumintenrightbot[x][y] = sumintenrightbot[x][y] + intensity[right][bottom];
          sumofredrightbot[x][y]= sumofredrightbot[x][y]+redValues[right][bottom];
          sumofgreenrightbot[x][y]= sumofgreenrightbot[x][y]+greenValues[right][bottom];
          sumofbluelerightbot[x][y]= sumofbluelerightbot[x][y]+blueValues[right][bottom];
          
          
          sumintenlefttop[x][y] = sumintenlefttop[x][y] + intensity[left][top];
          sumofredlefttop[x][y]=sumofredlefttop[x][y]+redValues[left][top];
          sumofgreenlefttop[x][y]=sumofgreenlefttop[x][y]+greenValues[left][top];
          sumofbluelelefttop[x][y]=sumofbluelelefttop[x][y]+blueValues[left][top];
          
          
         sumintenrighttop[x][y] = sumintenrighttop[x][y] + intensity[right][top];
          sumofredrighttop[x][y]=sumofredrighttop[x][y]+redValues[right][top];
          sumofgreenrighttop[x][y]=sumofgreenrighttop[x][y]+greenValues[right][top];
          sumofbluelerighttop[x][y]=sumofbluelerighttop[x][y]+blueValues[right][top];
                               
                                           
    
      } p++;
 }
    sumintensleftbot[x][y]=sumintensleftbot[x][y]/(n*n);
     sumofredleftbot[x][y]=sumofredleftbot[x][y]/(n*n);
          sumofgreenleftbot[x][y]=sumofgreenleftbot[x][y]/(n*n);
          sumofblueleleftbot[x][y]=sumofblueleleftbot[x][y]/(n*n);
    
    
    sumintenrightbot[x][y]=sumintenrightbot[x][y]/(n*n);
    sumofredrightbot[x][y]=sumofredrightbot[x][y]/(n*n);
          sumofgreenrightbot[x][y]=sumofgreenrightbot[x][y]/(n*n);
          sumofbluelerightbot[x][y]=sumofbluelerightbot[x][y]/(n*n);
    
    
    sumintenlefttop[x][y]=sumintenlefttop[x][y]/(n*n);
     sumofredlefttop[x][y]=sumofredlefttop[x][y]/(n*n);
          sumofgreenlefttop[x][y]=sumofgreenlefttop[x][y]/(n*n);
          sumofbluelelefttop[x][y]=sumofbluelelefttop[x][y]/(n*n);
          
    
    
    sumintenrighttop[x][y]=sumintenrighttop[x][y]/(n*n);
    sumofredrighttop[x][y]=sumofredrighttop[x][y]/(n*n);
          sumofgreenrighttop[x][y]=sumofgreenrighttop[x][y]/(n*n);
          sumofbluelerighttop[x][y]=sumofbluelerighttop[x][y]/(n*n);
    
    
}}


    
    
    
     for (int x = 0; x < width; x++)
     { 
         for (int y = 0; y < height; y++)
         { 
        
             for (int w = 0+n; x < width-n; w++)
     { 
         for (int h = 0+n; y < height-n; h++)
         { 
             int left=x-w; if (left<0){left=0;}
         int right=x+w;if (right>width){right=width;}
         int top=y+h;if (top>height) {top=0;}
         int bottom=y-h;if (bottom<0){bottom=height;}
   
    dimensityleftbot[left][bottom]= (sumintensleftbot[x][y]-intensity[left][bottom])*(sumintensleftbot[x][y]-intensity[left][bottom]);
    dimensityrightbot[right][bottom]=(sumintenrightbot[x][y]-intensity[right][bottom])*(sumintenrightbot[x][y]-intensity[right][bottom]);
    dimensitylefttop[left][top]=(sumintenlefttop[x][y]-intensity[left][top])*(sumintenlefttop[x][y]-intensity[left][top]);
    dimensityrighttop[right][top]=(sumintenrighttop[x][y]-intensity[right][top])*(sumintenrighttop[x][y]-intensity[right][top]);
    
    q=q+dimensityleftbot[left][bottom];
    
    q1=q1+dimensityrightbot[right][bottom];
   
    q2=q2+ dimensitylefttop[left][top];
    
    q3=q3+dimensityrighttop[right][top];
    
    
    
    
    
    
    }}
 if (q<q1 && q<q2 && q<3){  pixels[x][y].setColor(new Color(  sumofredleftbot[x][y],sumofgreenleftbot[x][y] ,sumofblueleleftbot[x][y] ));  }              
  if (q1<q && q1<q2 && q1<q3){ pixels[x][y].setColor(new Color(  sumofredrightbot[x][y],sumofgreenrightbot[x][y] ,sumofblueleleftbot[x][y] )); }     
   if (q2<q1 && q2<q && q2<q3){     pixels[x][y].setColor(new Color(  sumofredlefttop[x][y],sumofgreenlefttop[x][y] ,sumofbluelelefttop[x][y] )); }         
    if (q3<q1 && q3<q2 && q3<q){         pixels[x][y].setColor(new Color(  sumofredrighttop[x][y],sumofgreenrighttop[x][y] ,sumofbluelerighttop[x][y] )); }             
}}
    

}}

java.lang.ArrayIndexOutOfBoundsException: 335
at MyPicture.shomajan1(MyPicture.java:652)
at __SHELL4.run(__SHELL4.java:9)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at greenfoot.localdebugger.LocalDebugger$QueuedExecution.run(LocalDebugger.java:267)
at greenfoot.core.Simulation.runQueuedTasks(Simulation.java:468)
at greenfoot.core.Simulation.maybePause(Simulation.java:281)
at greenfoot.core.Simulation.runContent(Simulation.java:212)
at greenfoot.core.Simulation.run(Simulation.java:205)
Вот такую вот шнягу выдает. Не подскажите где ошибка? я не очень шарю в этом деле.
...
Рейтинг: 0 / 0
Фильтр кувахара
    #38567987
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yerbol,
Ошибка в строке 652
...
Рейтинг: 0 / 0
Фильтр кувахара
    #38567988
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Фильтр кувахара
    #38567989
Yerbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

компилятор не видит ошибки.
...
Рейтинг: 0 / 0
Фильтр кувахара
    #38567991
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YerbolBlazkowicz,
компилятор не видит ошибки.
А дебаггер?
...
Рейтинг: 0 / 0
Фильтр кувахара
    #38567992
Yerbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

к сожалению не могу иногда понять чужие коды. Мог бы ты пожалуйста объяснить что нужно исправить?
...
Рейтинг: 0 / 0
Фильтр кувахара
    #38567993
Yerbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

пишу на дибильной платформе GreenFoot не думаю что тут есть дебагер
...
Рейтинг: 0 / 0
Фильтр кувахара
    #38567998
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yerbolк сожалению не могу иногда понять чужие коды.

Ну, в такой каше не просто разобраться.

YerbolМог бы ты пожалуйста объяснить что нужно исправить?
Возьми другую рабочую реализацию.
...
Рейтинг: 0 / 0
Фильтр кувахара
    #38568001
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yerbolпишу на дибильной платформе GreenFoot не думаю что тут есть дебагер
Есть Java должен быть и дебаг.
...
Рейтинг: 0 / 0
Фильтр кувахара
    #38568104
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yerbol, с точки зрения Java - это ошибка превышения индекса массива.

Но решать ее на уровне Java недостаточно. Нужно понимать принцип
фильтра кувахара. А это уже выходит за рамки форума Java.

Да и вообще я предлагаю обсуждать подобные вопросы в форуме
Программирование или в отдельных форумах по image processing.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Фильтр кувахара
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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