% script3.m: Sharp Filter % Jan Rothen % 9th of June 2004 % start with: matlab -nojvm -nodesktop function script3 = script3(filename) img = imread(filename); % Load the image file img = rgb2gray(img); % Convert to gray scale img = im2double(img); % Convert data into double values subplot(2, 1, 1) imshow(img); % Display original grayscaled image title('Original'); filterLow = [ 1, 4, 6, 4, 1; % Low pass filter 4, 16, 24, 16, 4; 6, 24, 36, 24, 6; 4, 16, 24, 16, 4; 1, 4, 6, 4, 1]; filterLow = 1/256 * filterLow; filterHigh = [ -1, -1, -1; % High pass filter -1, 8, -1; -1, -1, -1]; kL = zeros(size(img)); % Increase filter size kL(1:5, 1:5) = filterLow; kH = zeros(size(img)); % Increase filter size kH(1:3, 1:3) = filterHigh; filterLow = fft2(kL); % Fourier Transfom filterHigh = fft2(kH); % Fourier Transfom filterCombined = filterLow + filterHigh; % Combine both transformed filters img = fft2(img); % Fourier Transfom img = img .* filterCombined; % Convolution img = abs(ifft2(img)); imwrite(img, 'script3_processed.png', 'png'); % Write result to file subplot(2, 1, 2) imshow(img); % Display processed Image title('Sharp filtered');