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 (perhaps more) digital image processing may be modeled in the form of multidimensional systems.
Many of the techniques of digital image processing, or digital picture processing as it often was called, were developed in the 1960s at the Jet Propulsion Laboratory, Massachusetts Institute of Technology, Bell Laboratories, University of Maryland, and a few other research facilities, with application to satellite imagery, wire-photo standards conversion, medical imaging, videophone, character recognition, and photograph enhancement. The cost of processing was fairly high, however, with the computing equipment of that era. That changed in the 1970s, when digital image processing proliferated as cheaper computers and dedicated hardware became available. Images then could be processed in real time, for some dedicated problems such as television standards conversion. As general-purpose computers became faster, they started to take over the role of dedicated hardware for all but the most specialized and computer-intensive operations. With the fast computers and signal processors available in the 2000s, digital image processing has become the most common form of image processing and generally, is used because it is not only the most versatile method, but also the cheapest.
Digital image processing allows the use of much more complex algorithms, and hence, can offer both more sophisticated performance at simple tasks, and the implementation of methods which would be impossible by analog means.
In particular, digital image processing is the only practical technology for:
Some techniques which are used in digital image processing include:
Digital filters are used to blur and sharpen digital images. Filtering can be performed in the spatial domain by convolution with specifically designed kernels (filter array), or in the frequency (Fourier) domain by masking specific frequency regions. The following examples show both methods: 
|Filter type||Kernel or mask||Example|
image = checkerboard
F = Fourier Transform of image
Show Image: log(1+Absolute Value(F))
Images are typically padded before being transformed to the Fourier space, the highpass filtered images below illustrate the consequences of different padding techniques:
Notice that the highpass filter shows extra edges when zero padded compared to the repeated edge padding.
MATLAB example for spatial domain highpass filtering.
img=checkerboard(20); % generate checkerboard % ************************** SPATIAL DOMAIN *************************** klaplace=[0 -1 0; -1 5 -1; 0 -1 0]; % Laplacian filter kernel X=conv2(img,klaplace); % convolve test img with % 3x3 Laplacian kernel figure imshow(X,) % show Laplacian filtered title('Laplacian Edge Detection')
MATLAB example for Fourier domain highpass filtering.
img=checkerboard(20); % generate checkerboard % ************************** FOURIER DOMAIN *************************** pad=paddedsize([m,n]); % get padding size imgp=padarray(img,[pad(1),pad(2)],'both'); % set pad before & after [p,q]=size(imgp); % get size of padded img fftpad=fft2(imgp); % Fourier transform F=fftshift(fftpad); % shift low freq to middle Hlp=fftshift(lpfilter('btw',p,q,60)); % get butterworth filter Hhp=1-Hlp; % get highpass HPimg=abs(ifft2(F.*Hhp)); % apply filter and IFFT figure(7) imshow(Hhp,) % show the filter title('Highpass Butterworth') figure(8) % show result cropped imshow(HPimg(round((p-n)/2):round(n+(p-n)/2),round((q-m)/2):round(m+(q-m)/2)),) title('FFT Highpass Filtered')
Digital cameras generally include specialized digital image processing hardware - either dedicated chips or added circuitry on other chips - to convert the raw data from their image sensor into a color-corrected image in a standard image file format