İmgeler iki boyutlu sayısal verilerden oluştukları için konvolusyon işlemleri de iki boyutlu olarak alınır. Mesela bir imge filtreleneceği zaman konvolusyon kullanılabilir. Filtreleme için imgenin bir pikselinin değeri yakın çevresindeki komşu piksellerinin değerleri arasındaki bağıntıyla yeniden hesaplanır. Bu pikseller arasındaki bağıntı kernel ile tanımlanır. Kernel ile imge arasındaki konvolusyon işleminin matematiksel ifadesi şöyledir
Bu ifade dikkatle inceleneceği zaman yapılan işlemin aslında kernel piksellerinin imge uzerinden seçilen alandaki zıt konum pikselleri ile çarpılması, çarpımların toplanması şeklinde gerçekleştiği anlaşılabilmektedir. Şekil üzerinde gösterecek olursak.

Kernelin pikselleri, imge üzerinde kernel boyutunda alınan alandaki oklarla gösterilen eşleriyle çarpılır ve çarpımların toplamı alınan alan merkezindeki pikselin yeni değeri olur.
Seçilen kernel e göre imge yumuşatılabilmekte veya imgedeki kenarlar bulunabilmektedir. Şimdi seçtiğimiz birkaç kernel ile cameraman.tif imgemizi konvolusyon işlemini uygulayalım. Matlab ta konvolusyon işlemini yapan conv ve iki boyutlu konvolusyon yapan conv2 komutları mevcuttur. Ancak C/C++ gibi diller için fonksiyon kullanıcı tarafından yazılması gerekebilir ya da imge işleme için oluşturulmuş hazır kütüphaneler kullanılabilir.
Daha önce tanımlanmış prewit veya sobel kernelleri kullanılacağı gibi kendimizde kernel uydurabiliriz. Mesela YGS için kullanılabilecek bir kernel…
Kernel2 =
*
Matlab kodu :
clear all;
imge = imread(‘cameraman.tif’);
kernel2 = [-1 -1 -1; -1 9 -1; -1 -1 -1].*(1/9);
imge_yeni2 = conv2(kernel2,imge);
imshow(imge,[]);
figure, imshow(imge_yeni2);
![]() |
![]() |
|
Orjinal imge
|
Filtrelenmiş imge
|
İmge yi AGS ile filtrelemek için Matlab kodu:
clear all;
imge = imread(‘cameraman.tif’);
kernel = [1 1 1 1 1;1 1 4 1 1;1 4 16 4 1;1 1 4 1 1;1 1 1 1 1];
imge_yeni = conv2(kernel,imge);
imshow(imge,[]);
figure, imshow(imge_yeni,[]);
![]() |
![]() |
|
Orjinal imge
|
Filtrelenmiş imge
|


