Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Фильтр кувахара / 10 сообщений из 10, страница 1 из 1
20.02.2014, 19:15
    #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
20.02.2014, 19:23
    #38567987
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр кувахара
Yerbol,
Ошибка в строке 652
...
Рейтинг: 0 / 0
20.02.2014, 19:23
    #38567988
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр кувахара
...
Рейтинг: 0 / 0
20.02.2014, 19:25
    #38567989
Yerbol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр кувахара
Blazkowicz,

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

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

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

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

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

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

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


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