Я создаю проект ImageProcessing на NetbeansIDE. Я получаю ошибку ArrayIndexOutOfBoundsException
как функцию программы. У меня нет понять причину ошибки. Я читал подобную тему, но не смог найти решение. Я даю функцию. Пожалуйста, помогите мне.Ошибка Java ImageProcessing Ошибка «ArrayIndexOutOfBoundsException»
Я хочу обнаружить глаза и нос в изображении лица. Сначала сохраните яркость пикселей в горизонтальных и вертикальных массивах гистограмм. Затем я сканирую массивы и нахожу ярчайший пиксель. Наконец, я рисую черные пиксели.
Мой английский не совершенен, поэтому я сожалею.
public BufferedImage detectHistograms(BufferedImage resim){
int[] horizontalHistogram = new int[resim.getWidth()];
int[] verticalHistogram = new int[resim.getHeight()];
//first assigment to histogram arrays
for(int i=0; i<=horizontalHistogram.length-1; i++){
horizontalHistogram[i]=0;
verticalHistogram[i]=0;
}
//take the brightness values of the image
for(int i=0; i<=resim.getHeight()-1; i++){
for(int j=0; j<=resim.getWidth()-1; j++){
horizontalHistogram[i] += resim.getRGB(j, i);
verticalHistogram[j] += resim.getRGB(j, i);
}
}
//detect max vertical and horizontal histograms
int araDegiskenYatay = 0;
int araDegiskenDikey = 0;
int maxYatayPiksel = 0;
int maxDikeyPiksel = 0;
for(int i=0; i<=horizontalHistogram.length-1; i++){
if(horizontalHistogram[i] > araDegiskenYatay){
araDegiskenYatay = horizontalHistogram[i];
maxYatayPiksel = i;
}
}
for(int i=0; i<=verticalHistogram.length-1; i++){
if(horizontalHistogram[i] > araDegiskenDikey){
araDegiskenDikey = verticalHistogram[i];
maxDikeyPiksel = i;
}
}
//paint black of detect max and min histogram pixels
Color newColor = new Color(0,0,0);
for(int i=0; i<=resim.getWidth()-1; i++){
for(int j=0; j<=resim.getHeight()-1; j++){
resim.setRGB(maxYatayPiksel, maxDikeyPiksel,newColor.getRGB());
}
}
return resim;
}
Где происходит исключение? Вы должны добавить трассировку стека к вопросу. – Bubletan