As you are using imshow I'm guessing you have the image processing toolbox installed. In that case you might as well use the imfilter() function. The function
fspecial('Gaussian', hsize, sigma )
will generate a Gaussian lowpass filter.
High pass filtering can be achieved by subtracting the low pass filtered from the original image, e.g.
I = imread( 'peppers.png' );
I_filtered = I - imfilter( I, fspecial('Gaussian', 5, 1 ) );
imtool( I_filtered );
If you want to do the filtering explicitly, create the convolution matrix, e.g.
hp_filter_matrix = fspecial('Gaussian', 5, 1);
This gives you a 5 x 5 double matrix that you can convolve with your image to low pass filter it. As before, the high pass filtered representation can be obtained by subtraction.
Best Answer