0% found this document useful (0 votes)
9 views

Lab 1

This document contains the code and results from various image processing exercises. It: 1) Performs a Fourier transform on an image, applies a Sobel filter kernel, and shows the filtered image. 2) Generates ideal, Butterworth, and Gaussian low-pass filters and applies them to an image. 3) Compares the clarity of filtered images using different filters. 4) Applies a Gaussian low-pass filter and intensity scaling to an image. 5) Filters a chest X-ray with a Butterworth filter, applies a discrete time filter, and shows an equalized version.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Lab 1

This document contains the code and results from various image processing exercises. It: 1) Performs a Fourier transform on an image, applies a Sobel filter kernel, and shows the filtered image. 2) Generates ideal, Butterworth, and Gaussian low-pass filters and applies them to an image. 3) Compares the clarity of filtered images using different filters. 4) Applies a Gaussian low-pass filter and intensity scaling to an image. 5) Filters a chest X-ray with a Butterworth filter, applies a discrete time filter, and shows an equalized version.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Austin Miller

OSS 4008A – Image processing

Lab

November 21st, 2023

Exercise 1.1

% Exercise 1
f=imread('building-600by600.tif');
figure, imshow(f)
f = double(f);
F = fft2(f);
S = fftshift(log(1 + abs(F)));
figure, imshow(S, [ ])

This shows that the image clearly has the Fourier transform.

1.2

h=

1 0 -1

2 0 -2
1 0 -1

h = fspecial('sobel')'; display(h)

The code above clearly outputs the kernel.

1.3

% Exercise 1.3
plot(h);

The frequency spectrum


1.4

>> PQ = paddedsize(size(f));

H = freqz2(h, PQ(1), PQ(2));

H1 = ifftshift(H);

figure, imshow(abs(H), [ ])

figure, imshow(abs(H1), [ ])

These commands show the frequency of the image, and the inverse Fourier transform shift.

1.5
% Exercise 1.5
gs = imfilter(f, h);

This shows the filtered image.

1.6

1.7
% Exercise 1.7
imshow(gs, [])
imshow(gf, [])

Exercise 1.8
% Exercise 1.7
imshow(abs(gs), [])
imshow(abs(gf), [])

1.9
% Exercise 1.7
imshow(abs(gs), [])
imshow(abs(gf), [])

2.1

LPI = fftshift(lpfilter('ideal', 500, 500, 50)); figure, LPI_plot=surf(LPI(1:10:end, 1:10:end)); axis off
set(LPI_plot, 'FaceColor',[160/255 195/255 170/255], 'FaceAlpha',1,... 'EdgeAlpha',0.5) figure,
imshow(LPI,[])

2.2
LPB = fftshift(lpfilter('butterworth', 500, 500, 50,2)); figure, LPB_plot=surf(LPB(1:10:end, 1:10:end)); axis
off set(LPB_plot, 'FaceColor',[160/255 195/255 170/255], 'FaceAlpha',1,... 'EdgeAlpha',0.5) figure,
imshow(LPB,[])

2.3

>> LPB = fftshift(lpfilter('gaussian', 500, 500, 50,2));

figure, LPB_plot=surf(LPB(1:10:end, 1:10:end));

axis off

set(LPB_plot, 'FaceColor',[160/255 195/255 170/255], 'FaceAlpha',1,...

'EdgeAlpha',0.5)
figure, imshow(LPB,[])

3.1

This shows an ideal filter


This is a gaussian filter

Lpfilter is an unknown filter


Butterworth

Exercise 3.2

This exercise showed that the butterworth filter is the clearest, since the others create quite a bit of
distortion and lower frequency.

Exercise 4
These two images look different because they have clear filters applied to the left image.
% Exercise 4
f=imread('testpattern512.tif');
PQ=paddedsize(size(f));
D0=50;
%Gaussian lowpass transfer function.
HLPG=hpfilter('Gaussian',PQ(1),PQ(2),D0);
%filter the image
gLPG=dftfilt(f,HLPG,'symmetric');
figure,imshow(gLPG)
%scale the intensities to the range [0,1]
gLPGS=intensityScaling(gLPG);
figure,imshow(gLPGS)

Exercise 5
% Exercise 5
f=imread('chestXray-dark.tif');
figure(1),imshow(f)
PQ=paddedsize(size(f));
D0=round(0.05*PQ(1));
H=hpfilter('butterworth',PQ(1),PQ(2),D0,2);
ghp=dftfilt(f,H,'symmetric');
ghps=intensityScaling(ghp);
figure(2), imshow(ghps)
Hemp=0.5 + 2.0*H;
gemp=dftfilt(f,Hemp,'symmetric');
gemps=intensityScaling(gemp);
figure(3),imshow(gemps)
geq=histeq(gemp,128);
figure(4),imshow(geq)

The first image is the normal xray, the second image is the filter with butterworth applie, the third image
is the image with the discrete time filter, and the last image shows an equalized version of the image.

You might also like