YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Digital Image Processing

Project Report on

Digital Image Processing

INDIAN INSTITUTE OF TECHNILOGY JODHPUR

Jodhpur 342001, INDIA

By AkarshRastogi

(UG201211003)

Page 2: Digital Image Processing

DIGITAL IMAGE PROCESSING

Digital image processing is the use of computer algorithms to

perform image processing on digital images. As a subcategory

or field of digital signal processing, digital image processing

has many advantages over analog image processing. It allows

a much wider range of algorithms to be applied to the input

data and can avoid problems such as the build-up of noise and

signal distortion during processing. Since images are defined

over two dimensions digital image processing may be

modeled in the form of multidimensional systems.

Page 3: Digital Image Processing

POINTS COVERED

Ø Image Compression Ø Lossy Image Compression

· JPEG image compession

Ø Lossless Image Compression

Ø Image Enhancement Ø Spatial Intensity Transformation

Ø Frequency Filter

Ø Image Restoration Ø Noise Estimation and their effects

· Weiner Filtering

Page 4: Digital Image Processing

Image Compression Image compression addresses the problem of reducing the amount of data

required to represent a digital image. Compression is achieved by the removal

of one or more of the three basic redundancies

Ø Coding redundancy, which is present when less than optimal code

words are used

Ø Interpixel redundancy, which results from correlations between the

pixels of an image

Ø Psychovisual redundancy, which is due to data that is ignored by the

Human Visual System.

Image compression can belossy or lossless.

Lossy Compression are especially suitable for natural images such as

photographs in applications where minor (sometimes imperceptible) loss of

fidelity is acceptable to achieve a substantial reduction in bit rate.

Lossless Compression is preferred for archival purposes and often for

medical imaging, technical drawings, clip art or comics.

Page 5: Digital Image Processing

JPEG Image Compression JPEG is a commonly used method of lossy compression for digital images

It includesfollowing steps:

Construct nxnsubmatrices

Image is a two dimensional M x N matrices . It is very difficult for computer

to handle full image at once so the whole image is divided into

nxnsubimages.

Forward Transform

Each sub image is transformed through Discrete Cosine Transform.

Quantization

This is the main step behind compression. Also, this is the step where

major loss of data takes place. Quantization decreases the number of

different values.

Symbol Encoder

JPEG encodes through Hoffman Encoding which further compresses the

image. It finally outputs the compressed image.

Construct

nxnsubimage

s

Forward

Transform

Quantizer Symbol

encoder

Symbol

decoder

Inverse

transform

Merge

nxn images

Input

image

Compressed

image

Compressed

image Decompressed

image

Page 6: Digital Image Processing

Symbol Decoder

This is the first step while decoding the compressed image.

Inverse Transform

Then the inverse transform of the matrix is taken.

Merge nxnsubimages

Finally all the subimages are merged and the decompressed image is

obtained.

Matlab Code of JPEG %%%%%%%%%%%%%%%%%%image compression%%%%%%%%%%%%%%%%% %read original image original_image = imread ('IMG_5809.bmp'); %transform image to ycbcr format new_image= rgb2ycbcr(original_image); % seperating all 3 frames seperatly y_image=new_image(:,:,1); cb_image=new_image(:,:,2); cr_image=new_image(:,:,3); % changing image to small matrices cell_size= 8; repeat_height=floor(size(y_image,1)/cell_size); repeat_width=floor(size(y_image,2)/cell_size); repeat_height_mat = repmat(cell_size, [1 repeat_height]); repeat_width_mat = repmat(cell_size, [1 repeat_width]); y_subimg = mat2cell(y_image ,repeat_height_mat,repeat_width_mat); cb_subimg = mat2cell(cb_image ,repeat_height_mat,repeat_width_mat); cr_subimg = mat2cell(cr_image ,repeat_height_mat,repeat_width_mat); %discrete cosine transform fori=1:repeat_height for j=1:repeat_width y_subimg{i, j} = dct2(y_subimg{i, j});

Page 7: Digital Image Processing

cb_subimg{i, j} = dct2(cb_subimg{i, j}); cr_subimg{i, j} = dct2(cr_subimg{i, j}); end end %quantization quantization_factor = 16; fori=1:repeat_height for j=1:repeat_width y_subimg{i, j} = y_subimg{i, j} / quantization_factor; cb_subimg{i, j} = cb_subimg{i, j} / quantization_factor; cr_subimg{i, j} = cr_subimg{i, j} / quantization_factor; end end fori=1:repeat_height for j=1:repeat_width y_subimg{i, j}(:, 5:8) = 0; y_subimg{i, j}(5:8, :) = 0; cb_subimg{i, j}(:, 5:8) = 0; cb_subimg{i, j}(5:8, :) = 0; cr_subimg{i, j}(:, 5:8) = 0; cr_subimg{i, j}(5:8, :) = 0; end end y_compimg = uint8(cell2mat(y_subimg )) * quantization_factor; cb_compimg = uint8(cell2mat(cb_subimg)) * quantization_factor; cr_compimg = uint8(cell2mat(cr_subimg)) * quantization_factor; %to assign no of row comp_img=original_image; % now assign values to compressed image comp_img(:,:,1)=y_compimg; comp_img(:,:,2)=cb_compimg; comp_img(:,:,3)=cr_compimg; %%%%%%%%%%%%%%%%% image decompression %%%%%%%%%%%%%%%% %Dequanitzation fori=1:repeat_height for j=1:repeat_width y_subimg{i, j} = y_subimg{i, j} * quantization_factor; cb_subimg{i, j} = cb_subimg{i, j} * quantization_factor; cr_subimg{i, j} = cr_subimg{i, j} * quantization_factor; end end

Page 8: Digital Image Processing

%inverse dct fori=1:repeat_height for j=1:repeat_width y_subimg{i, j} = idct2(y_subimg{i, j}); cb_subimg{i, j} = idct2(cb_subimg{i, j}); cr_subimg{i, j} = idct2(cr_subimg{i, j}); end end %%Stich sub images into single image y_image = cell2mat(y_subimg); cb_image = cell2mat(cb_subimg); cr_image = cell2mat(cr_subimg); %%Convert to RGB space ycbcr_img(:, :, 1) = y_image; ycbcr_img(:, :, 2) = cb_image; ycbcr_img(:, :, 3) = cr_image; final_img = ycbcr2rgb(ycbcr_img); figure(1); imshow(original_img); figure(2); imshow(final_img);

Page 9: Digital Image Processing

Result of JPEG Compression

Uncompressed Image (51.2 Mb)

Compressed Image (36 Mb)

akku
Typewritten text
Data lost after decompression=
akku
Typewritten text
15.2 Mb
Page 10: Digital Image Processing

Image Enhancement Quality of image can be enhanced through changes on the basis of histogram.

· Spatial Intensity Transformation

Spatial domain techniques operate directly to the pixels of an image as

opposed, for example to the frequency domain where operations are

performed on the Fourier Transform of an image, rather than on image

itself.

Basic Transformation Program on Matlab

%% Basic Transformation on Matlab img=imread('IMG_5809.bmp'); %%Converting image to grayscale img=rgb2gray(img); %%Observing image and its histogram figure(1); imshow(img); figure(2); imhist(img); %%Histogram is towards right hand side hence colours are lighter new_img=img-50; %%new image and its histogram figure(3); imshow(new_img); figure(4); imhist(new_img); %%Equalising histogram newimage=histeq(img); figure(5); imshow(newimage); figure(6); imhist(newimage);

Page 11: Digital Image Processing

Result of spatial Transformation Initial image

Initial Histogram

Page 12: Digital Image Processing

Final Image

Final Histogram

Page 13: Digital Image Processing

After histogram equalization, image

After histogram equalization, histogram

Page 14: Digital Image Processing

· Frequency Filter

Frequency filters process an image in the frequency domain. The image

is Fourier transformed, multiplied with the filter function and then re-

transformed into the spatial domain. Attenuating high frequencies results in a

smoother image in the spatial domain, attenuating low frequencies enhances the

edges.

All frequency filters can also be implemented in the spatial domain and, if there

exists a simple kernel for the desired filter effect, it is computationally less

expensive to perform the filtering in the spatial domain. Frequency filtering is

more appropriate if no straightforward kernel can be found in the spatial

domain, and may also be more efficient.

Matlab Code for basic Frequency Filter

I=imread('eight.tif'); J=imnoise(I,'gaussian',0,.01); [M,N]=size(J); u=0:M-1; v=0:N-1; idx= find(u>M/2); u(idx)=u(idx)-M; idy=find(v>N/2); v(idy)=v(idy)-N; [V,U]=meshgrid(v,u); K=fft2(J,M,N); D0=.05*2500; H=exp(-(U.^2 + V.^2)/(2*(D0^2))); G=(H).*(K); L=real(uint8(ifft2(G))); figure(1); imshow(J); figure(2); imshow(L);

Page 15: Digital Image Processing

Result of Low pass Frequency Filter

Initial image

Filtered image

Page 16: Digital Image Processing

Image Restoration The objective of image restoration is to improve image in some

predefined sense. Restoration attempts to recover or reconstruct an

image that has been degraded by using a priori knowledge of the

degradation phenomenon. Thus restoration techniques are oriented

toward modelling the degradation and applying the inverse process in

order to recover the original image.

Effect of noise on histogram

I=imread('eight.tif'); A=imnoise(I,'gaussian'); B=imnoise(I,'poisson'); C=imnoise(I,'salt& pepper',.5); D=imnoise(I,'speckle'); figure(1); imhist(I); figure(2); imhist(A); figure(3); imhist(B); figure(4); imhist(C); figure(5); imhist(D);

Original Histogram

Page 17: Digital Image Processing

Gaussian noise

Poisson noise

Page 18: Digital Image Processing

Speckle noise

Simple code of Weiner Filtering of a noised image

I=imread('saturn.png'); I=rgb2gray(I); J=imnoise(I,'gaussian',0,0.05); K=wiener2(J,[10,10]); H=fspecial('disk',10); blurred=imfilter(J,H,'replicate'); figure(1); imshow(I); figure(2); imshow(J); figure(3); imshow(K); figure(4); imshow(blurred);

Page 19: Digital Image Processing

Result of Weiner Filtering

Original Image

Noised image

Page 20: Digital Image Processing

Weiner Filter

Disk Filter

Page 21: Digital Image Processing

References

· Websites · http://en.wikipedia.org/wiki/Digital_image_processing

· www.ipol.im

· www.imageprocessingplace.com

· http://nboddula.blogspot.in/2013/05/image-compression-how-jpeg-

works.html

· Books · Digital Image Processing, Gonzalez and Woods


Related Documents