Я пишу небольшую программу обработки изображений. Используя свертку, я смог заставить работать размытие по Гауссу! Моя проблема в том, что когда я пытаюсь использовать ядро для повышения резкости, оно не работает, хотя, как я понимаю, свертка остается прежней, меняется только ядро. Я что-то пропустил? Мой код:
` public void convolution(float[] kernel){
int H = myImage.getHeight();
int W = myImage.getWidth();
for(int band=0; band < writer.getNumBands(); band++){
for(int x = 1; x < W-1 ; x++){ // all the x's
for(int y = 1; y<H-1; y++){ // for each x, go through all the y's
int pixel = 0;
int counter = 0;
for(int i=-1; i<=1; i++){
for(int j=-1; j<=1; j++){
pixel += kernel[counter]*myImage.getRaster().getSample(x+i, y+j, band);
counter++;
}
}
writer.setSample(x, y, band, (int) (pixel)); //raster object
}
}
}
}
`
Полученное изображение имеет выделенные края, но имеет очень странные цвета. Спасибо!