Sei sulla pagina 1di 84

An Automatic Wavelet Based- Nonlinear Image Enhancement Technique for Aerial Imagery

INDEX
1. INTRODUCTION. 2. ABSTRACT 3. IMAGE PROCESSING 3.1 3.2 3.3 3.4 3.5 3.6 DIGITAL IMAGE PROCESSING.. IMAGE PROCESSING AND ANALYSIS IMAGE RESOLUTION. HOW TO IMPROVE YOUR IMAGE. PREPROCESSING OF REMOTELY SENSED IMAGES APPLICATIONS.. HISTORY.. USES OF AERIAL IMAGERY. TYPES OF AERIAL PHOTOGRAPHY AERIAL VIDEO PROPOSED METHOD. AUTOMATIC IMAGE ENHANCEMENT.. IMAGE EDITORS CONTINOUS WAVELET TRANSFORM.. DISCRETE WAVELET TRANSFORM SUBBAND CODING AND MULTIRESOLUTIONAL ANALYSIS. HISTOGRAM ADJUSTMENT. WAVELET BASED DYNAMIC RANGE COMPRESSION AND CONTRAST ENHANCEMENT. 7.3 COLOR RESTORATION.. 8. CONCLUSION. 9. REFERENCES..

4. AERIAL IMAGERY.. 4.1 4.2 4.3 4.4

5. NON-LINEAR IMAGE ENHANCEMENT TECHNIQUE. 5.1 5.2 5.3

6. WAVELETS. 6.1 6.2 6.3

7. ALGORITHM.. 7.1 7.2

LIST OF TABLES: 1. ELEMENTS OF IMAGE INTERPRETATION..

LIST OF FIGURES: 1. AERIAL IMAGE OF A TEST BUILDING. 2. CONTINOUS WAVELET TRANSFORM EXAMPLE 3. CWT OF COSINE SIGNALS 4. DECOMPOSITION LEVELS. 5. DWT COFFECIENTS..

ABSTRACT
Recently we proposed a wavelet-based dynamic range compression algorithm to improve the visual quality of digital images captured in the high dynamic range scenes with nonuniform lighting conditions. The fast image enhancement algorithm which provides dynamic range compression preserving the local contrast and tonal rendition is a very good candidate in aerial imagery applications such as image interpretation for defense and security tasks.

This algorithm can further be applied to video streaming for aviation safety. In this project the latest version of the proposed algorithm which is able to enhance aerial images so that the enhanced images are better then direct human observation, is presented. The results obtained by applying the algorithm to numerous aerial images show strong robustness and high image quality.

Introduction
Aerial images captured from aircrafts, spacecrafts, or satellites usually suffer from lack of clarity, since the atmosphere enclosing Earth has effects upon the images such as turbidity caused by haze, fog, clouds or heavy rain. The visibility of such aerial images may decrease drastically and Sometimes the conditions at which the images are taken may only lead to near zero visibility even for the human eyes. Even though human observers may not see much than smoke, there may exist useful information in those images taken under such poor conditions. Captured images are usually not the same as what we see in a real world scene, and are generally a poor rendition of it. High dynamic range of the real life scenes and the limited dynamic range of imaging devices results in images with locally poor contrast. Human Visual System (HVS) deals with the high dynamic range scenes by compressing the dynamic range and adapting locally to each part of the scene. There are some exceptions such as turbid (e.g. fog, heavy rain or snow) imaging conditions under which acquired images and the direct observation possess a close parity .The extreme narrow dynamic range of such scenes leads to extreme low contrast in the acquired images.

To deal with the problems caused by the limited dynamic range of the imaging devices, many image processing algorithms have been developed .These algorithms also provide contrast enhancement to some extent. Recently we have developed a wavelet-based dynamicrange compression (WDRC) algorithm to improve the visual quality of digital images of high dynamic range scenes with non-uniform lighting conditions .The WDRC algorithm is modified in by introducing an histogram adjustment and non-linear color restoration process so that it provides color constancy and deals with pathological scenes having very strong spectral characteristics in a single band. The fast image enhancement algorithm which provides dynamic range compression preserving the local contrast and tonal rendition is a very good candidate in aerial imagery applications such as image interpretation for defense and security tasks. This algorithm can further be applied to video streaming for aviation safety. In this project application of the

WDRC algorithm in aerial imagery is presented. The results obtained from large variety of aerial images show strong robustness and high image quality indicating promise for aerial imagery during poor visibility flight conditions.

Image Processing
In electrical engineering and computer science, image processing is any form of signal processing for which the input is an image, such as a photograpy or video frame the output of image processing may be either an image or, a set of characteristics or parameters related to the image. Most image-processing techniques involve treating the image as a two-dimensional signal and applying standard signal-processing techniques to it. Image processing usually refers to digital image processing, but optical and analog image processing also are possible. This article is about general techniques that apply to all of them. The acquisition of images (producing the input image in the first place) is referred to as imaging. Image processing is a physical process used to convert an image signal into a physical image. The image signal can be either digital or analog. The actual output itself can be an actual physical image or the characteristics of an image. The most common type of image processing is photography. In this process, an image is captured using a camera to create a digital or analog image. In order to produce a physical picture, the image is processed using the appropriate technology based on the input source type. In digital photography, the image is stored as a computer file. This file is translated using photographic software to generate an actual image. The colors, shading, and nuances are all captured at the time the photograph is taken the software translates this information into an image.

Euclidean geometry transformations such as enlargement, reduction, and rotation Color corrections such as brightness and contrast adjustments, color mapping, color balancing, quantization, or color translation to a different color space

Digital compositing or optical compositing (combination of two or more images), which is used in film-making to make a "matte"

Interpolation, demosaicing, and recovery of a full image from a raw image format using a Bayer filter pattern

Image registration, the alignment of two or more images Image differencing and morphing Image recognition, for example, may extract the text from the image using optical character recognition or checkbox and bubble values using optical mark recognition

Image segmentation High dynamic range imaging by combining multiple images Geometric hashing for 2-D object recognition with affine invariance

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 (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 technology for medical applications was inducted into the Space Foundation Space Technology Hall of Fame in 1994. Digital image processing allows the use of much more complex algorithms for image processing, 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:

Classification Feature extraction Pattern recognition Projection Multi-scale signal analysis

Some techniques which are used in digital image processing include:


Pixelization Linear filtering Principal components analysis Independent component analysis Hidden Markov models Anisotropic diffusion Partial differential equations Self-organizing maps Neural networks Wavelets

Image Processing and Analysis Introduction Image Processing and Analysis can be defined as the "act of examining images for the purpose

of identifying objects and judging their significance" Image analyst study the remotely sensed data and attempt through logical process in detecting, identifying, classifying, measuring and evaluating the significance of physical and cultural objects, their patterns and spatial relationship.

Digital Data In a most generalized way, a digital image is an array of numbers depicting spatial distribution of a certain field parameters (such as reflectivity of EM radiation, emissivity, temperature or some geophysical or topographical elevation. Digital image consists of discrete picture elements called pixels. Associated with each pixel is a number represented as DN (Digital Number), that depicts the average radiance of relatively small area within a scene. The range of DN values being normally 0 to 255. The size of this area effects the reproduction of details within the scene. As the pixel size is reduced more scene detail is preserved in digital representation.

Remote sensing images are recorded in digital forms and then processed by the computers to produce images for interpretation purposes. Images are available in two forms - photographic film form and digital form. Variations in the scene characteristics are represented as variations in brightness on photographic films. A particular part of scene reflecting more energy will appear bright while a different part of the same scene that reflecting less energy will appear black. Digital image consists of discrete picture elements called pixels. Associated with each pixel is a number represented as DN (Digital Number), that depicts the average radiance of relatively small area within a scene. The size of this area effects the reproduction of details within the scene. As the pixel size is reduced more scene detail is preserved in digital representation.

Data Formats For Digital Satellite Imagery Digital data from the various satellite systems supplied to the user in the form of computer readable tapes or CD-ROM. As no worldwide standard for the storage and transfer of remotely sensed data has been agreed upon, though the CEOS (Committee on Earth Observation Satellites) format is becoming accepted as the standard. Digital remote sensing data are often

organised using one of the three common formats used to organise image data . For an instance an image consisting of four spectral channels, which can be visualised as four superimposed images, with corresponding pixels in one band registering exactly to those in the other bands. These common formats are:

Band Interleaved by Pixel (BIP) Band Interleaved by Line (BIL) Band Sequential (BQ)

Digital image analysis is usually conducted using Raster data structures - each image is treated as an array of values. It offers advantages for manipulation of pixel values by image processing system, as it is easy to find and locate pixels and their values. Disadvantages becomes apparent when one needs to represent the array of pixels as discrete patches or regions, where as Vector data structures uses polygonal patches and their boundaries as fundamental units for analysis and manipulation. Though vector format is not appropriate to for digital analysis of remotely sensed data.

ImageResolution Resolution can be defined as "the ability of an imaging system to record fine details in a distinguishable manner". A working knowledge of resolution is essential for understanding both practical and conceptual details of remote sensing. Along with the actual positioning of spectral bands, they are of paramount importance in determining the suitability of remotely sensed data for a given applications. The major characteristics of imaging remote sensing instrument operating in the visible and infrared spectral region are described in terms as follow:

Spectral resolution Radiometric resolution Spatial resolution Temporal resolution

Spectral Resolution refers to the width of the spectral bands. As different material on the earth surface exhibit different spectral reflectances and emissivities. These spectral characteristics

define the spectral position and spectral sensitivity in order to distinguish materials. There is a tradeoff between spectral resolution and signal to noise. The use of well -chosen and sufficiently numerous spectral bands is a necessity, therefore, if different targets are to be successfully identified on remotely sensed images. Radiometric Resolution or radiometric sensitivity refers to the number of digital levels used to express the data collected by the sensor. It is commonly expressed as the number of bits (binary digits) needs to store the maximum level. For example Landsat TM data are quantised to 256 levels (equivalent to 8 bits). Here also there is a tradeoff between radiometric resolution and signal to noise. There is no point in having a step size less than the noise level in the data. A lowquality instrument with a high noise level would necessarily, therefore, have a lower radiometric resolution compared with a high-quality, high signal-to-noise-ratio instrument. Also higher radiometric resolution may conflict with data storage and transmission rates. Spatial Resolution of an imaging system is defines through various criteria, the geometric properties of the imaging system, the ability to distinguish between point targets, the ability to measure the periodicity of repetitive targets ability to measure the spectral properties of small targets.

The most commonly quoted quantity is the instantaneous field of view (IFOV), which is the angle subtended by the geometrical projection of single detector element to the Earth's surface. It may also be given as the distance, D measured along the ground, in which case, IFOV is clearly dependent on sensor height, from the relation: D = hb, where h is the height and b is the angular IFOV in radians. An alternative measure of the IFOV is based on the PSF, e.g., the width of the PDF at half its maximum value. A problem with IFOV definition, however, is that it is a purely geometric definition and does not take into account spectral properties of the target. The effective resolution element (ERE) has been defined as "the size of an area for which a single radiance value can be assigned with reasonable assurance that the response is within 5% of the value representing the actual relative radiance". Being based on actual image data, this quantity may be more useful in some situations than the IFOV.

Other methods of defining the spatial resolving power of a sensor are based on the ability of the device to distinguish between specified targets. Of the concerns the ratio of the modulation of the image to that of the real target. Modulation, M, is defined as:

M = Emax -Emin / Emax + Emin

Where Emax and Emin are the maximum and minimum radiance values recorded over the image.

Temporal resolution refers to the frequency with which images of a given geographic location can be acquired. Satellites not only offer the best chances of frequent data coverage but also of regular coverage. The temporal resolution is determined by orbital characteristics and swath width, the width of the imaged area. Swath width is given by 2htan(FOV/2) where h is the altitude of the sensor, and FOV is the angular field of view of the sensor.

How to Improve Your Image? Analysis of remotely sensed data is done using various image processing techniques and methods that includes:

Analog image processing Digital image processing.

Visual or Analog processing techniques is applied to hard copy data such as photographs or printouts. Image analysis in visual techniques adopts certain elements of interpretation, which are as follow: The use of these fundamental elements of depends not only on the area being studied, but the knowledge of the analyst has of the study area. For example the texture of an object is also very useful in distinguishing objects that may appear the same if the judging solely on tone (i.e., water and tree canopy, may have the same mean brightness values, but their texture is much different. Association is a very powerful image analysis tool when coupled with the general knowledge of the site. Thus we are adept at applying collateral data and personal knowledge to the task of

image processing. With the combination of multi-concept of examining remotely sensed data in multispectral, multitemporal, multiscales and in conjunction with multidisciplinary, allows us to make a verdict not only as to what an object is but also its importance. Apart from these analog image processing techniques also includes optical photogrammetric techniques allowing for precise measurement of the height, width, location, etc. of an object.

Elements of Image Interpretation Black and White Tone Primary Elements Color Stereoscopic Parallax Size Spatial Arrangement of Tone & Shape Color Texture Pattern Based on Analysis of Primary Height Elements Shadow Site Contextual Elements Association Digital Image Processing is a collection of techniques for the manipulation of digital images by computers. The raw data received from the imaging sensors on the satellite platforms contains flaws and deficiencies. To overcome these flaws and deficiencies inorder to get the originality of the data, it needs to undergo several steps of processing. This will vary from image to image depending on the type of image format, initial condition of the image and the information of interest and the composition of the image scene. Digital Image Processing undergoes three general steps:

Pre-processing Display and enhancement

Information extraction

Pre-processing consists of those operations that prepare data for subsequent analysis that attempts to correct or compensate for systematic errors. The digital imageries are subjected to several corrections such as geometric, radiometric and atmospheric, though all these correction might not be necessarily be applied in all cases. These errors are systematic and can be removed before they reach the user. The investigator should decide which pre-processing techniques are relevant on the basis of the nature of the information to be extracted from remotely sensed data. After pre-processing is complete, the analyst may use feature extraction to reduce the dimensionality of the data. Thus feature extraction is the process of isolating the most useful components of the data for further study while discarding the less useful aspects (errors, noise etc). Feature extraction reduces the number of variables that must be examined, thereby saving time and resources.

Image Enhancement operations are carried out to improve the interpretability of the image by increasing apparent contrast among various features in the scene. The enhancement techniques depend upon two factors mainly

The digital data (i.e. with spectral bands and resolution) The objectives of interpretation

As an image enhancement technique often drastically alters the original numeric data, it is normally used only for visual (manual) interpretation and not for further numeric analysis. Common enhancements include image reduction, image rectification, image magnification, transect extraction, contrast adjustments, band ratioing, spatial filtering, Fourier transformations, principal component analysis and texture transformation. Information Extraction is the last step toward the final output of the image analysis. After preprocessing and image enhancement the remotely sensed data is subjected to quantitative analysis to assign individual pixels to specific classes. Classification of the image is based on the known and unknown identity to classify the remainder of the image consisting of those pixels of unknown identity. After classification is complete, it is necessary to evaluate its accuracy by

comparing the categories on the classified images with the areas of known identity on the ground. The final result of the analysis consists of maps (or images), data and a report. These three components of the result provide the user with full information concerning the source data, the method of analysis and the outcome and its reliability. Pre-Processing of the Remotely Sensed Images When remotely sensed data is received from the imaging sensors on the satellite platforms it contains flaws and deficiencies. Pre-processing refers to those operations that are preliminary to the main analysis. Preprocessing includes a wide range of operations from the very simple to extremes of abstractness and complexity. These categorized as follow: 1. Feature Extraction 2. Radiometric Corrections 3. Geometric Corrections 4. Atmospheric Correction The techniques involved in removal of unwanted and distracting elements such as image/system noise, atmospheric interference and sensor motion from an image data occurred due to limitations in the sensing of signal digitization, or data recording or transmission process. Removal of these effects from the digital data are said to be "restored" to their correct or original condition, although we can, of course never know what are the correct values might be and must always remember that attempts to correct data what may themselves introduce errors. Thus image restoration includes the efforts to correct for both radiometric and geometric errors.

Feature Extraction Feature Extraction does not mean geographical features visible on the image but rather "statistical" characteristics of image data like individual bands or combination of band values that carry information concerning systematic variation within the scene. Thus in a multispectral data it helps in portraying the necessity elements of the image. It also reduces the number of spectral bands that has to be analyzed. After the feature extraction is complete the analyst can work with the desired channels or bands, but inturn the individual bandwidths are more potent for information. Finally such a pre-processing increases the speed and reduces the cost of

analysis.

Radiometric Corrections Radiometric Corrections are carried out when an image data is recorded by the sensors they contain errors in the measured brightness values of the pixels. These errors are referred as radiometric errors and can result from the 1. Instruments used to record the data 2. From the effect of the atmosphere Radiometric processing influences the brightness values of an image to correct for sensor malfunctions or to adjust the values to compensate for atmospheric degradation. Radiometric distortion can be of two types: 1. The relative distribution of brightness over an image in a given band can be different to that in the ground scene. 2. The relative brightness of a single pixel from band to band can be distorted compared with spectral reflectance character of the corresponding region on the ground.

Applications
Digital camera images Digital cameras generally include dedicated digital image processing chips to convert the raw data from the image sensor into a color-corrected image in a standard image file format. Images from digital cameras often receive further processing to improve their quality, a distinct advantage that digital cameras have over film cameras. The digital image processing typically is executed by special software programs that can manipulate the images in many ways. Many digital cameras also enable viewing of histograms of images, as an aid for the photographer to understand the rendered brightness range of each shot more readily.

Aerial imagery
Aerial imagery can expose a great deal about soil and crop conditions. The birds eye view an aerial image provides, combined with field knowledge, allows growers to observe issues that affect yield. Our imagery technology enhances the ability to be proactive and recognize a Problematic area, thus minimizing yield loss and limiting exposure to other areas of your field. Hemisphere GPS Imagery uses infrared technology to help you see the big picture to identify these everyday issues. Digital infrared sensors are very sensitive to subtle differences in plant health and growth rate. Anything that changes the appearance of leaves (such as curling, wilting, and defoliation) has an effect on the image. Computer enhancement makes these Variations within the canopy stand out, often indicating disease, water, weed, or fertility problems.

Because of Hemisphere GPS technology, aerial imagery is over 30 times more detailed than any commercially available satellite imagery and is available in selected areas for the 2010 growing season. Images can be taken on a scheduled or as needed basis. Aerial images provide a snapshot of the crop condition. The example on the right shows healthy crop conditions in red and less than healthy conditions in green. These snapshots of crop variations can then be turned into variable rate prescription maps (PMaps), which is shown on the right Imagery can be used to identify crop stress over a period of time. In the images to the left, the Problem areas identified with yellow arrows show potential plant damage (e.g. disease, insects, etc.). Aerial images, however, store information about the electro-magnetic radiance of the Complete scene in almost continuous form. Therefore they support the localization of break lines and linear or spatial objects. The Map Mart Aerial Image Library covers all of the continental United States as well as a growing number if International locations. The aerial imagery ranges in date from 1926 to the present day depending upon the location. Imagery can be requested and ordered by selecting an area on an interactive map or larger areas, such as cities or counties can be purchased in bundles. Many of the current digital datasets are available for download within a few minutes

of purchase. Aerial image measurement includes non-linear, 3-dimensional, and materials effects on imaging. Aerial image measurement excludes the processing effects of printing and etching on the wafer. The successful application of aerial image emulation for CDU measurement traditionally, aerial image metrology systems are used to evaluate defect printability and repair success.

Areal image of the test the building

Whereas, digital aerial imagery should remain in the public domain and be archived to secure its availability for future scientific, legal, and historical purposes. Aerial photography is the taking of photographs of the ground from an elevated position. The term usually refers to images in which the camera is not supported by a ground-based structure. Cameras may be hand held or mounted, and photographs may be taken by a photographer, triggered remotely or triggered automatically. Platforms for aerial photography include fixed-wing aircraft, helicopters, balloons, blimps and dirigibles, rockets, kites, poles, parachutes, vehicle mounted poles . Aerial photography should not be confused with Air-to-Air Photography, when aircraft serve both as a photo platform and subject.

History
Aerial photography was first practiced by the French photographer and balloonist Gaspard-Flix Tournachon, known as "Nadar", in 1858 over Paris, France.

The first use of a motion picture camera mounted to a heavier-than-air aircraft took place on April 24, 1909 over Rome in the 3:28 silent film short, Wilbur Wright und seine Flugmaschine. The first special semiautomatic aerial camera was designed in 1911 by Russian military engineer Colonel Potte V. F.[2] This aerial camera was used during World War I. The use of aerial photography for military purposes was expanded during World War I by many others aviators such as Fred Zinn. One of the first notable battles was that of Neuve Chapelle. With the advent of inexpensive digital cameras, many people now take candid photographs from commercial aircraft and increasingly from general aviation aircraft on private pleasure flights.

Uses of imagery:
Aerial photography is used in cartography (particularly in photogrammetric surveys, which are often the basis for topographic maps), land-use planning, archaeology, movie production, environmental studies, surveillance, commercial advertising, conveyancing, and artistic projects. In the United States, aerial photographs are used in many Phase I Environmental Site Assessments for property analysis. Aerial photos are often processed using GIS software.

Radio-controlled aircraft
Advances in radio controlled models have made it possible for model aircraft to conduct low-altitude aerial photography. This has benefited real-estate advertising, where commercial and residential properties are the photographic subject. Full-size, manned aircraft are prohibited from low flights above populated locations.[3] Small scale model aircraft offer increased photographic access to these previously restricted areas. Miniature vehicles do not replace full size aircraft, as full size aircraft are capable of longer flight times, higher altitudes, and greater equipment payloads. They are, however, useful in any situation in which a full-scale aircraft would be dangerous to operate. Examples would include the inspection of transformers atop power transmission lines and slow, low-level flight over agricultural fields, both of which can be accomplished by a large-scale radio controlled helicopter. Professional-grade, gyroscopically stabilized camera platforms are available for use under such a model; a large model helicopter with a 26cc gasoline engine can hoist a payload of approximately seven kilograms (15 lbs). Recent (2006) FAA regulations grounding all commercial RC model flights have been upgraded to require formal FAA certification before permission to fly at any altitude in USA. Because anything capable of being viewed from a public space is considered outside the realm of privacy in the United States, aerial photography may legally document features and occurrences on private property.

Types of aerial photograph


Oblique photographs
Photographs taken at an angle are called oblique photographs. If they are taken almost straight down are sometimes called low oblique and photographs taken from a shallow angle are called high oblique.

Vertical photographs
Vertical photographs are taken straight down. They are mainly used in photogrammetric and image interpretation. Pictures that will be used in photogrammetric was traditionally taken with special large format cameras with calibrated and documented geometric properties.

Combinations
Aerial photographs are often combined. Depending on their purpose it can be done in several ways. A few are listed below.

Several photographs can be taken with one handheld camera to later be stitched together to a panorama.

In pictometry five rigidly mounted cameras provide one vertical and four low oblique pictures that can be used together.

In some digital cameras for aerial photogrammetry photographs from several imaging elements, sometimes with separate lenses, are geometrically corrected and combined to one photograph in the camera.

Orthophotos
Vertical photographs are often used to create orthophotos, photographs which have been geometrically "corrected" so as to be usable as a map. In other words, an orthophoto is a simulation of a photograph taken from an infinite distance, looking straight down from nadir. Perspective must obviously be removed, but variations in terrain should also be corrected for. Multiple geometric transformations are applied to the image, depending on the perspective and terrain corrections required on a particular part of the image. Orthophotos are commonly used in geographic information systems, such as are used by mapping agencies (e.g. Ordnance Survey) to create maps. Once the images have been aligned, or 'registered', with known real-world coordinates, they can be widely deployed. Large sets of orthophotos, typically derived from multiple sources and divided into "tiles" (each typically 256 x 256 pixels in size), are widely used in online map systems such as Google Maps.

OpenStreetMap offers the use of similar orthophotos for deriving new map data. Google Earth overlays orthophotos or satellite imagery onto a digital elevation model to simulate 3D landscapes.

Aerial video
With advancements in video technology, aerial video is becoming more popular. Orthogonal video is shot from aircraft mapping pipelines, crop fields, and other points of interest. Using GPS, video may be embedded with meta data and later synced with a video mapping program. This Spatial Multimedia is the timely union of digital media including still photography, motion video, stereo, panoramic imagery sets, immersive media constructs, audio, and other data with location and date-time information from the GPS and other location designs. Aerial videos are emerging Spatial Multimedia which can be used for scene understanding and object tracking. The input video is captured by low flying aerial platforms and typically consists of strong parallax from non-ground-plane structures. The integration of digital video, global positioning systems (GPS) and automated image processing will improve the accuracy and cost-effectiveness of data collection and reduction. Several different aerial platforms are under investigation for the data collection

Non-linear image enhancement technique

We propose a non-linear image enhancement method, which allows selective enhancement based on the contrast sensitivity function of the human visual system. We also proposed An evaluation method for measuring the performance of the algorithm and for comparing it with

existing approaches. The selective enhancement of the proposed approach is especially suitable for digital television applications to improve the perceived visual quality of the images when the source image contains less satisfactory amount of high frequencies due to various reasons, including interpolation that is used to convert standard definition sources into high-definition images. Non-linear processing can presumably generate new frequency components and thus it is attractive in some applications.

PROPOSED ENHANCEMENT METHOD

Basic Strategy

The basic strategy of the proposed approach shares the same principle of the methods That is, assuming that the input image is denoted by I, then the enhanced image O is obtained by the following processing

O = I + NL(HP( I ))
where HP() stands for high-pass filtering and NL() is a nonlinear operator. As will become clear in subsequent sections, the non-linear processing includes a scale step and a clipping step. The HP() step is based on a set of Gabor filters. The performance of a perceptual image enhancement algorithm is typically judged through a subjective test. In most current work in the literature, such as this subjective test is simplified to simply showing an enhancement image along with the original to a viewer. While a viewer may report that a blurry image is indeed enhanced, this approach does not allow systematic comparison between tow competing methods. Furthermore, since the ideal goal of enhancement is to make up the high-frequency components that are lost in the imaging orother processes, it would be desired to show whether an enhancement algorithm indeed generates the desired highfrequency components. The tests in do not answer this question. (Note that, although showing the Fourier transform of the enhanced image may illustrate whether high-frequency components are added this is not an accurate

evaluation of a method, due to the fact that the Fourier transform provides only a global measure of the signal spectrum. For example, disturbing ringing artifacts may appear as false highfrequency components in the Fourier transform.)

Automatic image enhancement


Digital data compression
Many image file formats use data compression to reduce file size and save storage space. Digital compression of images may take place in the camera, or can be done in the computer with the image editor. When images are stored in JPEG format, compression has already taken place. Both cameras and computer programs allow the user to set the level of compression. Some compression algorithms, such as those used in PNG file format, are lossless, which means no information is lost when the file is saved. By contrast, the JPEG file format uses a lossy compression algorithm by which the greater the compression, the more information is lost, ultimately reducing image quality or detail that can not be restored. JPEG uses knowledge of the way the human brain and eyes perceive color to make this loss of detail less noticeable. Image editor features Listed below are some of the most used capabilities of the better graphic manipulation programs. The list is by no means all inclusive. There are a myriad of choices associated with the application of most of these features.

Selection One of the prerequisites for many of the applications mentioned below is a method of selecting part(s) of an image, thus applying a change selectively without affecting the entire

picture. Most graphics programs have several means of accomplishing this, such as a marquee tool, lasso, vector-based pen tools as well as more advanced facilities such as edge detection, masking, alpha compositing, and color and channel-based extraction. Layers Another feature common to many graphics applications is that of Layers, which are analogous to sheets of transparent acetate (each containing separate elements that make up a combined picture), stacked on top of each other, each capable of being individually positioned, altered and blended with the layers below, without affecting any of the elements on the other layers. This is a fundamental workflow which has become the norm for the majority of programs on the market today, and enables maximum flexibility for the user while maintaining nondestructive editing principles and ease of use. Image size alteration Image editors can resize images in a process often called image scaling, making them larger, or smaller. High image resolution cameras can produce large images which are often reduced in size for Internet use. Image editor programs use a mathematical process called resampling to calculate new pixel values whose spacing is larger or smaller than the original pixel values. Images for Internet use are kept small say 640 x 480 pixels which would equal 0.3 megapixels. Cropping an image Digital editors are used to crop images. Cropping creates a new image by selecting a desired rectangular portion from the image being cropped. The unwanted part of the image is discarded. Image cropping does not reduce the resolution of the area cropped. Best results are obtained when the original image has a high resolution. A primary reason for cropping is to improve the image composition in the new image. Histogram

Image editors have provisions to create an image histogram of the image being edited. The histogram plots the number of pixels in the image (vertical axis) with a particular brightness value (horizontal axis). Algorithms in the digital editor allow the user to visually adjust the brightness value of each pixel and to dynamically display the results as adjustments are made. Improvements in picture brightness and contrast can thus be obtained.

Noise reduction Image editors may feature a number of algorithms which can add or remove noise in an image. JPEG artifacts can be removed; dust and scratches can be removed and an image can be de-speckled. Noise reduction merely estimates the state of the scene without the noise and is not a substitute for obtaining a "cleaner" image. Excessive noise reduction leads to a loss of detail, and its application is hence subject to a trade-off between the undesirability of the noise itself and that of the reduction artifacts. Noise tends to invade images when pictures are taken in low light settings. A new picture can be Given an antiquated effect by adding uniform monochrome noise. Removal of unwanted elements Most image editors can be used to remove unwanted branches, etc, using a "clone" tool. Removing these distracting elements draws focus to the subject, improving overall composition. Introduced in Photoshop CS5, the "Content-Aware Fill" could be used to select an object (unwanted branches) and remove it out of the picture by simply pressing "Delete" on the keyboard, without destroying the image. The same feature is available for GIMP in form of the plug-in "Resynthesizer" developed by Paul Harrison.

Image editors
For example, to make an image lighter or darker, or to increase or decrease contrast. Advanced photo enhancement software also supports many filters for altering images in various ways. Programs specialized for image enhancements are sometimes called image editors.

Sharpening and softening images Graphics programs can be used to both sharpen and blur images in a number of ways, such as unsharp masking or deconvolution. Portraits often appear more pleasing when selectively softened (particularly the skin and the background) to better make the subject stand out. This can be achieved with a camera by using a large aperture, or in the image editor by making a selection and then blurring it. Edge enhancement is an extremely common technique used to make images appear sharper, although purists frown on the result as appearing unnatural. Selecting and merging of images Many graphics applications are capable of merging one or more individual images into a single file. The orientation and placement of each image can be controlled. When selecting a raster image that is not rectangular, it requires separating the edges from the background, also known as silhouetting. This is the digital version of cutting out the image. Clipping paths may be used to add silhouetted images to vector graphics or page layout files that retain vector data. Alpha compositing, allows for soft translucent edges when selecting images. There are a number of ways to silhouette an image with soft edges including selecting the image or its background by sampling similar colors, selecting the edges by raster tracing, or converting a clipping path to a raster selection. Once the image is selected, it may be copied and pasted into another section of the same file, or into a separate file. The selection may also be saved in what is known as an alpha channel. A popular way to create a composite image is to use transparent layers. The background image is used as the bottom layer, and the image with parts to be added are placed in a layer above that. Using an image layer mask, all but the parts to be merged are hidden from the layer, giving the impression that these parts have been added to the background layer. Performing a merge in this manner preserves all of the pixel data on both layers to more easily enable future changes in the new merged image. Slicing of images

A more recent tool in digital image editing software is the image slicer. Parts of images for graphical user interfaces or web pages are easily sliced, labeled and saved separately from whole images so the parts can be handled individually by the display medium. This is useful to allow dynamic swapping via interactivity or animating parts of an image in the final presentation. Special effects Image editors usually have a list of special effects that can create unusual results. Images may be skewed and distorted in various ways. Scores of special effects can be applied to an image which includes various forms of distortion, artistic effects, geometric transforms and texture effects, or combinations thereof. Change color depth It is possible, using software, to change the color depth of images. Common color depths are 2, 4, 16, 256, 65.5 thousand and 16.7 million colors. The JPEG and PNG image formats are capable of storing 16.7 million colors (equal to 256 luminance values per color channel). In addition, gray scale images of 8 bits or less can be created, usually via conversion and down sampling form a full color image.

Contrast change and brightening


Image editors have provisions to simultaneously change the contrast of images and brighten or darken the image. Underexposed images can often be improved by using this feature. Recent advances have allowed more intelligent exposure correction whereby only pixels below a particular luminosity threshold are brightened, thereby brightening underexposed shadows without affecting the rest of the image. The exact transformation that is applied to each color channel can vary from editor to editor. GIMP applies the following formula. Color adjustments The color of images can be altered in a variety of ways. Colors can be faded in and out, and tones can be changed using curves or other tools. The color balance can be improved,

which is important if the picture was shot indoors with daylight film, or shot on a camera with the white balance incorrectly set. Special effects, like sepia and grayscale can be added to a image. In addition, more complicated procedures such as the mixing of color channels are possible using more advanced graphics editors. The red-eye effect, which occurs when flash photos are taken when the pupil is too widely open (so that light from the flash that passes into the eye through the pupil reflects off the fundus at the back of the eyeball), can also be eliminated at this stage. Printing Controlling the print size and quality of digital images requires an understanding of the pixels-per-inch (ppi) variable that is stored in the image file and sometimes used to control the size of the printed image. Within the Image Size dialog (as it is called in Photoshop), the image editor allows the user to manipulate both pixel dimensions and the size of the image on the printed document. These parameters work together to produce a printed image of the desired size and quality. Pixels per inch of the image, pixel per inch of the computer monitor, and dots per inch on the printed document are related, but in use are very different. The Image Size dialog can be used as an image calculator of sorts. For example, a 1600 x 1200 image with a ppi of 200 will produce a printed image of 8 x 6 inches. The same image with a ppi of 400 will produce a printed image of 4 x 3 inches. Change the ppi to 800, and the same image now prints out at 2 x 1.5 inches. All three printed images contain the same data (1600 x 1200 pixels) but the pixels are closer together on the smaller prints, so the smaller images will potentially look sharp when the larger ones do not. The quality of the image will also depend on the capability of the printer.

Wavelets
Wavelet is a waveform of effectively limited duration that has an average value of zero.

The Wavelet transform is a transform of this type. It provides the time-frequency representation. (There are other transforms which give this information too, such as short time Fourier transform, Wigner distributions, etc.) Often times a particular spectral component occurring at any instant can be of particular interest. In these cases it may be very beneficial to know the time intervals these particular spectral components occur. For example, in EEGs, the latency of an event-related potential is of particular interest (Event-related potential is the response of the brain to a specific stimulus like flash-light, the latency of this response is the amount of time elapsed between the onset of the stimulus and the response). Wavelet transform is capable of providing the time and frequency information simultaneously, hence giving a time-frequency representation of the signal. How wavelet transform works is completely a different fun story, and should be explained after short time Fourier Transform (STFT) . The WT was developed as an alternative to the STFT. The STFT will be explained in great detail in the second part of this tutorial. It suffices at this time to say that the WT was developed to overcome some resolution related problems of the STFT, as explained in Part II. To make a real long story short, we pass the time-domain signal from various highpass and low pass filters, which filters out either high frequency or low frequency portions of the signal. This procedure is repeated, every time some portion of the signal corresponding to some frequencies being removed from the signal. Here is how this works: Suppose we have a signal which has frequencies up to 1000 Hz. In the first stage we split up the signal in to two parts by passing the signal from a highpass and a lowpass filter (filters should satisfy some certain conditions, so-called admissibility condition) which results in two different versions of the same signal: portion of the signal corresponding to 0-500 Hz (low pass portion), and 500-1000 Hz (high pass portion). Then, we take either portion (usually low pass portion) or both, and do the same thing again. This operation is called decomposition .

Assuming that we have taken the lowpass portion, we now have 3 sets of data, each corresponding to the same signal at frequencies 0-250 Hz, 250-500 Hz, 500-1000 Hz. Then we take the lowpass portion again and pass it through low and high pass filters; we now have 4 sets of signals corresponding to 0-125 Hz, 125-250 Hz,250-500 Hz, and 5001000 Hz. We continue like this until we have decomposed the signal to a pre-defined certain level. Then we have a bunch of signals, which actually represent the same signal, but all corresponding to different frequency bands. We know which signal corresponds to which frequency band, and if we put all of them together and plot them on a 3-D graph, we will have time in one axis, frequency in the second and amplitude in the third axis. This will show us which frequencies exist at which time ( there is an issue, called "uncertainty principle", which states that, we cannot exactly know what frequency exists at what time instance , but we can only know what frequency bands exist at what time intervals , more about this in the subsequent parts of this tutorial). However, I still would like to explain it briefly: The uncertainty principle, originally found and formulated by Heisenberg, states that, the momentum and the position of a moving particle cannot be known simultaneously. This applies to our subject as follows: The frequency and time information of a signal at some certain point in the timefrequency plane cannot be known. In other words: We cannot know what spectral component exists at any given time instant. The best we can do is to investigate what spectral components exist at any given interval of time. This is a problem of resolution, and it is the main reason why researchers have switched to WT from STFT. STFT gives a fixed resolution at all times, whereas WT gives a variable resolution as follows: Higher frequencies are better resolved in time, and lower frequencies are better resolved in frequency. This means that, a certain high frequency component can be located better in time (with less relative error) than a low frequency component. On the contrary, a low frequency component can be located better in frequency compared to high frequency component. Take a look at the following grid:

f^ |******************************************* |* * * * * * * * * * * * * * * |* |* |* * * * * * * * * * * continuous

wavelet transform

--------------------------------------------> time

Interpret the above grid as follows: The top row shows that at higher frequencies we have more samples corresponding to smaller intervals of time. In other words, higher frequencies can be resolved better in time. The bottom row however, corresponds to low frequencies, and there are less number of points to characterize the signal, therefore, low frequencies are not resolved well in time.

^frequency | | |

| ******************************************************* | | |

| * * * * * * * * * * * * * * * * * * * discrete time | |* | |* |* * * * * * * * * * * * * * * wavelet transform *

|----------------------------------------------------------> time

In discrete time case, the time resolution of the signal works the same as above, but now, the frequency information has different resolutions at every stage too. Note that, lower frequencies are better resolved in frequency, where as higher frequencies are not. Note how the spacing between subsequent frequency components increase as frequency increases.

Below , are some examples of continuous wavelet transform: Let's take a sinusoidal signal, which has two different frequency components at two different times:

Note the low frequency portion first, and then the high frequency.

The continuous wavelet transform of the above signal:

Figure

Note however, the frequency axis in these plots are labeled as scale . The concept of the scale will be made more clear in the subsequent sections, but it should be noted at this time that the scale is inverse of frequency. That is, high scales correspond to low frequencies, and low scales correspond to high frequencies. Consequently, the little peak in the plot corresponds to the high frequency components in the signal, and the large peak corresponds to low frequency components (which appear before the high frequency components in time) in the signal.

You might be puzzled from the frequency resolution shown in the plot, since it shows good frequency resolution at high frequencies. Note however that, it is the good scale resolution that looks good at high frequencies (low scales), and good scale resolution means poor frequency resolution and vice versa.

Continuous wavelet transform


The continuous wavelet transform was developed as an alternative approach to the short time Fourier transform to overcome the resolution problem. The wavelet analysis is done in a similar way to the STFT analysis, in the sense that the signal is multiplied with a function, {\it the wavelet}, similar to the window function in the STFT, and the transform is computed separately for different segments of the time-domain signal. However, there are two main differences between the STFT and the CWT: 1. The Fourier transforms of the windowed signals are not taken, and therefore single peak will be seen corresponding to a sinusoid, i.e., negative frequencies are not computed. 2. The width of the window is changed as the transform is computed for every single spectral component, which is probably the most significant characteristic of the wavelet transform.

The continuous wavelet transform is defined as follows

As seen in the above equation , the transformed signal is a function of two variables, tau and s , the translation and scale parameters, respectively. psi(t) is the transforming function, and it is called the mother wavelet . The term mother wavelet gets its name due to two important properties of the wavelet analysis as explained below: The term wavelet means a small wave . The smallness refers to the condition that this (window) function is of finite length ( compactly supported). The wave refers to the condition that this function is oscillatory . The term mother implies that the functions with different region of support that are used in the transformation process are derived from one main function, or the mother wavelet. In other words, the mother wavelet is a prototype for generating the other window functions. The term translation is used in the same sense as it was used in the STFT; it is related to the location of the window, as the window is shifted through the signal. This term, obviously, corresponds to time information in the transform domain. However, we do not have a frequency parameter, as we had before for the STFT. Instead, we have scale parameter which is defined as $1/frequency$. The term frequency is reserved for the STFT. Scale is described in more detail in the next section. The Scale The parameter scale in the wavelet analysis is similar to the scale used in maps. As in the case of maps, high scales correspond to a non-detailed global view (of the signal), and low scales

correspond to a detailed view. Similarly, in terms of frequency, low frequencies (high scales) correspond to a global information of a signal (that usually spans the entire signal), whereas high frequencies (low scales) correspond to a detailed information of a hidden pattern in the signal (that usually lasts a relatively short time). Cosine signals corresponding to various scales are given as examples in the following figure .

figure Fortunately in practical applications, low scales (high frequencies) do not last for the entire duration of the signal, unlike those shown in the figure, but they usually appear from time

to time as short bursts, or spikes. High scales (low frequencies) usually last for the entire duration of the signal. Scaling, as a mathematical operation, either dilates or compresses a signal. Larger scales correspond to dilated (or stretched out) signals and small scales correspond to compressed signals. All of the signals given in the figure are derived from the same cosine signal, i.e., they are dilated or compressed versions of the same function. In the above figure, s=0.05 is the smallest scale, and s=1 is the largest scale. In terms of mathematical functions, if f(t) is a given function f(st) corresponds to a contracted (compressed) version of f(t) if s > 1 and to an expanded (dilated) version of f(t) if s < 1. However, in the definition of the wavelet transform, the scaling term is used in the denominator, and therefore, the opposite of the above statements holds, i.e., scales s > 1 dilates the signals whereas scales s < 1 , compresses the signal.

Discrete wavewle transform


The foundations of the DWT go back to 1976 when Croiser, Esteban, and Galand devised a technique to decompose discrete time signals. Crochiere, Weber, and Flanagan did a similar work on coding of speech signals in the same year. They named their analysis scheme as subband coding. In 1983, Burt defined a technique very similar to subband coding and named it pyramidal coding which is also known as multiresolution analysis. Later in 1989, Vetterli and Le Gall made some improvements to the subband coding scheme, removing the existing redundancy in the pyramidal coding scheme. Subband coding is explained below. A detailed coverage of the discrete wavelet transform and theory of multiresolution analysis can be found in a number of articles and books that are available on this topic, and it is beyond the scope of this tutorial.

Subband Coding and Multiresolution Analysis

The main idea is the same as it is in the CWT. A time-scale representation of a digital signal is obtained using digital filtering techniques. Recall that the CWT is a correlation between a wavelet at different scales and the signal with the scale (or the frequency) being used as a measure of similarity. The continuous wavelet transform was computed by changing the scale of the analysis window, shifting the window in time, multiplying by the signal, and integrating over all times. In the discrete case, filters of different cutoff frequencies are used to analyze the signal at different scales. The signal is passed through a series of high pass filters to analyze the high frequencies, and it is passed through a series of low pass filters to analyze the low frequencies. The resolution of the signal, which is a measure of the amount of detail information in the signal, is changed by the filtering operations, and the scale is changed by upsampling and downsampling (subsampling) operations. Subsampling a signal corresponds to reducing the sampling rate, or removing some of the samples of the signal. For example, subsampling by two refers to dropping every other sample of the signal. Subsampling by a factor n reduces the number of samples in the signal n times. Upsampling a signal corresponds to increasing the sampling rate of a signal by adding new samples to the signal. For example, upsampling by two refers to adding a new sample, usually a zero or an interpolated value, between every two samples of the signal. Upsampling a signal by a factor of n increases the number of samples in the signal by a factor of n.

Although it is not the only possible choice, DWT coefficients are usually sampled from the CWT on a dyadic grid, i.e., s0
0

= 1, yielding s=2j

, as described

in Part 3. Since the signal is a discrete time function, the terms function and sequence will be used interchangeably in the following discussion. This sequence will be denoted by x[n], where n is an integer. The procedure starts with passing this signal (sequence) through a half band digital lowpass filter with impulse response h[n]. Filtering a signal corresponds to the mathematical operation of convolution of the signal with the impulse response of the filter. The convolution operation in discrete time is defined as follows:

A half band lowpass filter removes all frequencies that are above half of the highest frequency in the signal. For example, if a signal has a maximum of 1000 Hz component, then half band lowpass filtering removes all the frequencies above 500 Hz. The unit of frequency is of particular importance at this time. In discrete signals, frequency is expressed in terms of radians. Accordingly, the sampling frequency of the signal is

that exists in a signal wil

rad/s in the discrete frequency domain. Therefore using Hz is not appropriate for discrete signals. However, Hz is used whenever it is needed to clarify a discussion, since it is very common to think of frequency in terms of Hz. It should always be remembered that the unit of frequency for discrete time signals is radians. After passing the signal through a half band lowpass filter, half of the samples can be eliminated according to the Nyquists rule, since the signal now has a highest frequency of ll subsample the signal by two, and the signal will then have half the number of points. The scale of the signal is

now

doubled. Note that the lowpass filtering removes the high frequency

information, but leaves the scale unchanged. Only the subsampling process changes the scale. Resolution, on the other hand, is related to the amount of information in the signal, and therefore, it is affected by the filtering operations. Half band lowpass filtering removes half of the frequencies, which can be interpreted as losing half of the information. Therefore, the resolution is halved after the filtering operation. Note, however, the subsampling operation after filtering does not affect the resolution, since removing half of the spectral components from the signal makes half the number of samples redundant anyway. Half the samples can be discarded without any loss of information. In summary, the lowpass filtering halves the resolution, but leaves the scale unchanged. The signal is then subsampled by 2 since half of the number of samples are redundant. This doubles the scale. This procedure can mathematically be expressed as

Having said that, we now look how the DWT is actually computed: The DWT analyzes the signal at different frequency bands with different resolutions by decomposing the signal into a coarse approximation and detail information. DWT employs two sets of functions, called scaling functions and wavelet functions, which are associated with low pass and highpass filters, respectively. The decomposition of the signal into different frequency bands is simply obtained by successive highpass and lowpass filtering of the time domain signal. The original signal x[n] is first passed through a halfband highpass filter g[n] and a lowpass filter h[n]. After the filtering, half of the samples can be eliminated according to the Nyquists rule, since the signal now has a highest subsampled by 2, simply by discarding every other sample. This constitutes one level of decomposition and can mathematically be expressed as follows:

where yhigh[k] and ylow[k] are the outputs of the highpass and lowpass filters, respectively, after subsampling by 2. This decomposition halves the time resolution since only half the number of samples now characterizes the entire signal. However, this operation doubles the frequency resolution, since the frequency band of the signal now spans only half the previous frequency band, effectively reducing the uncertainty in the frequency by half. The above procedure, which is also known as the subband coding, can be repeated for further decomposition. At every level, the filtering and subsampling will result in half the number of samples (and hence half the time resolution) and half the frequency band spanned (and hence double the frequency resolution). Figure illustrates this procedure, where x[n] is the original signal to be decomposed, and h[n] and g[n] are lowpass and highpass filters, respectively. The bandwidth of the signal at every level is marked on the figure as "f".

Figure The Subband Coding Algorithm As an example, suppose that the original

decomposition level, the signal is passed through the highpass and lowpass filters, followed by subsampling by 2. The output of the highpass filter has 256 points (hence half the time

resolution). These 256 samples constitute the first level of DWT coefficients. The output of the lowpass filter also has 256 samples, but it spans the other half of the frequency band, frequencies ass filters for further decomposition. The output of the second lowpass filter followed by subsampling has 128

followed by s second highpass filtered signal constitutes the second level of DWT coefficients. This signal has half the time resolution, but twice the frequency resolution of the first level signal. In other words, time resolution has decreased by a factor of 4, and frequency resolution has increased by a factor of 4 compared to the original signal. The lowpass filter output is then filtered once again for further decomposition. This process continues until two samples are left. For this specific example there would be 8 levels of decomposition, each having half the number of samples of the previous level. The DWT of the original signal is then obtained by concatenating all coefficients starting from the last level of decomposition (remaining two samples, in this case). The DWT will then have the same number of coefficients as the original signal. The frequencies that are most prominent in the original signal will appear as high amplitudes in that region of the DWT signal that includes those particular frequencies. The difference of this transform from the Fourier transform is that the time localization of these frequencies will not be lost. However, the time localization will have a resolution that depends on which level they appear. If the main information of the signal lies in the high frequencies, as happens most often, the time localization of these frequencies will be more precise, since they are characterized by more number of samples. If the main information lies only at very low frequencies, the time localization will not be very precise, since few samples are used to express signal at these frequencies. This procedure in effect offers a good time resolution at high frequencies, and good frequency resolution at low frequencies. Most practical signals encountered are of this type.

The frequency bands that are not very prominent in the original signal will have very low amplitudes, and that part of the DWT signal can be discarded without any major loss of information, allowing data reduction. Figure 4.2 illustrates an example of how DWT signals look like and how data reduction is provided. Figure 4.2a shows a typical 512-sample signal that is normalized to unit amplitude. The horizontal axis is the number of samples, whereas the vertical axis is the normalized amplitude. Figure 4.2b shows the 8 level DWT of the signal in Figure 4.2a. The last 256 samples in this signal correspond to the highest frequency band in the signal, the previous 128 samples correspond to the second highest frequency band and so on. It should be noted that only the first 64 samples, which correspond to lower frequencies of the analysis, carry relevant information and the rest of this signal has virtually no information. Therefore, all but the first 64 samples can be discarded without any loss of information. This is how DWT provides a very effective data reduction scheme.

We will revisit this example, since it provides important insight to how DWT should be interpreted. Before that, however, we need to conclude our mathematical analysis of the DWT. One important property of the discrete wavelet transform is the relationship between the impulse responses of the highpass and lowpass filters. The highpass and lowpass filters are not independent of each other, and they are related by

where g[n] is the highpass, h[n] is the lowpass filter, and L is the filter length (in number of points). Note that the two filters are odd index alternated reversed versions of each other. Lowpass to highpass conversion is provided by the (-1)n term. Filters satisfying this condition are commonly used in signal processing, and they are known as the Quadrature Mirror Filters (QMF). The two filtering and subsampling operations can be expressed by

The reconstruction in this case is very easy since halfband filters form orthonormal bases. The above procedure is followed in reverse order for the reconstruction. The signals at every level are upsampled by two, passed through the synthesis filters g[n], and h[n] (highpass and lowpass, respectively), and then added. The interesting point here is that the analysis and synthesis filters are identical to each other, except for a time reversal. Therefore, the reconstruction formula becomes (for each layer)

However, if the filters are not ideal halfband, then perfect reconstruction cannot be achieved. Although it is not possible to realize ideal filters, under certain conditions it is

possible to find filters that provide perfect reconstruction. The most famous ones are the ones developed by Ingrid Daubechies, and they are known as Daubechies wavelets. Note that due to successive subsampling by 2, the signal length must be a power of 2, or at least a multiple of power of 2, in order this scheme to be efficient. The length of the signal determines the number of levels that the signal can be decomposed to. For example, if the signal length is 1024, ten levels of decomposition are possible. Interpreting the DWT coefficients can sometimes be rather difficult because the way DWT coefficients are presented is rather peculiar. To make a real long story real short, DWT coefficients of each level are concatenated, starting with the last level. An example is in order to make this concept clear: Suppose we have a 256-sample long signal sampled at 10 MHZ and we wish to obtain its DWT coefficients. Since the signal is sampled at 10 MHz, the highest frequency component that exists in the signal is 5 MHz. At the first level, the signal is passed through the lowpass filter h[n], and the highpass filter g[n], the outputs of which are subsampled by two. The highpass filter output is the first level DWT coefficients. There are 128 of them, and they represent the signal in the [2.5 5] MHz range. These 128 samples are the last 128 samples plotted. The lowpass filter output, which also has 128 samples, but spanning the frequency band of [0 2.5] MHz, are further decomposed by passing them through the same h[n] and g[n]. The output of the second highpass filter is the level 2 DWT coefficients and these 64 samples precede the 128 level 1 coefficients in the plot. The output of the second lowpass filter is further decomposed, once again by passing it through the filters h[n] and g[n]. The output of the third highpass filter is the level 3 DWT coefficiets. These 32 samples precede the level 2 DWT coefficients in the plot. The procedure continues until only 1 DWT coefficient can be computed at level 9. This on coefficient is the first to be plotted in the DWT plot. This is followed by 2 level 8

coefficients, 4 level 7 coefficients, 8 level 6 coefficients, 16 level 5 coefficients, 32 level 4 coefficients, 64 level 3 coefficients, 128 level 2 coefficients and finally 256 level 1 coefficients. Note that less and less number of samples is used at lower frequencies, therefore, the time

resolution decreases as frequency decreases, but since the frequency interval also decreases at low frequencies, the frequency resolution increases. Obviously, the first few coefficients would not carry a whole lot of information, simply due to greatly reduced time resolution To illustrate this richly bizarre DWT representation let us take a look at a real world signal. Our original signal is a 256-sample long ultrasonic signal, which was sampled at 25 MHz. This signal was originally generated by using a 2.25 MHz transducer, therefore the main spectral component of the signal is at 2.25 MHz. The last 128 samples correspond to [6.25 12.5] MHz range. As seen from the plot, no information is available here, hence these samples can be discarded without any loss of information. The preceding 64 samples represent the signal in the [3.12 6.25] MHz range, which also does not carry any significant information. The little glitches probably correspond to the high frequency noise in the signal. The preceding 32 samples represent the signal in the [1.5 3.1] MHz range. As you can see, the majority of the signals energy is focused in these 32 samples, as we expected to see. The previous 16 samples correspond to [0.75 1.5] MHz and the peaks that are seen at this level probably represent the lower frequency envelope of the signal. The previous samples probably do not carry any other significant information. It is safe to say that we can get by with the 3rd and 4th level coefficients, that is we can represent this 256 sample long signal with 16+32=48 samples, a significant data reduction which would make your computer quite happy. One area that has benefited the most from this particular property of the wavelet transforms is image processing. As you may well know, images, particularly high-resolution images, claim a lot of disk space. As a matter of fact, if this tutorial is taking a long time to download, that is mostly because of the images. DWT can be used to reduce the image size without losing much of the resolution. Here is how: For a given image, you can compute the DWT of, say each row, and discard all values in the DWT that are less then a certain threshold. We then save only those DWT coefficients that are above the threshold for each row, and when we need to reconstruct the original image, we simply pad each row with as many zeros as the number of discarded coefficients, and use the inverse DWT to reconstruct each row of the original image. We can also analyze the image at different frequency bands, and reconstruct the original image by using only

the coefficients that are of a particular band. I will try to put sample images hopefully soon, to illustrate this point. Another issue that is receiving more and more attention is carrying out the decomposition (subband coding) not only on the lowpass side but on both sides. In other words, zooming into both low and high frequency bands of the signal separately. This can be visualized as having both sides of the tree structure of Figure 4.1. What result is what is known as the wavelet packages. We will not discuss wavelet packages in this here, since it is beyond the scope of this tutorial. Anyone who is interested in wavelet packages, or more information on DWT can find this information in any of the numerous texts available in the market. And this concludes our mini series of wavelet tutorial. If I could be of any assistance to anyone struggling to understand the wavelets, I would consider the time and the effort that went into this tutorial well spent. I would like to remind that this tutorial is neither a complete nor a through coverage of the wavelet transforms. It is merely an overview of the concept of wavelets and it was intended to serve as a first reference for those who find the available texts on wavelets rather complicated. There might be many structural and/or technical mistakes, and I would appreciate if you could point those out to me. Your feedback is of utmost importance for the success of this tutorial.

Algorithm
The proposed enhancement algorithm consists of three stages: the first and the third stage are applied in the spatial domain and the second one in the discrete wavelet domain.

Histogram Adjustment
Our motivation in making an histogram adjustment for minimizing the illumination effect is based on some assumptions about image formation and human vision behavior. The sensor signal S(x, y) incident upon an imaging system can be approximated as the product[8],[26]

S(x,y) = L(x,y)R(x,y), (1)


where R(x, y) is the reflectance and L(x, y) is the illuminance at each point (x, y). In lightness algorithms, assuming that the sensors and filters used in artificial visual systems possess the same nonlinear property as human photoreceptors, i.e.,logarithmic responses to

physical intensities incident on the their photoreceptors [8], Equation 1 can be decomposed into a sum of two components by using the transformation

I(x,y) =log(S(x,y)): I(x,y) = log(L(x,y)) + log(R(x,y)), (2)


where I(x,y) is the intensity of the image at pixel location (x,y).Equation 2 implies that illumination has an effect on the image histogram as a linear shift. This shift, intrinsically, is not same in different spectral bands. Another assumption of the lightness algorithms is the grayworld assumption stating that the average surface reflectance of each scene in each wavelength band is the same: gray [8]. From an image processing stance, this assumption indicates that images of natural scenes should contain pixels having almost equal average gray levels in each spectral band. Combining Equation 2 with the gray-world assumption, we perform histogram adjustment as follows: 1. The amount of shift corresponding to illuminance is determined from the beginning of the lower tail of the histogram such that a predefined amount (typically

0.5%) of image pixels is clipped 2. The shift is subtracted from each pixel value 3. This process is repeated separately for each color Channel

Wavelet Based Dynamic Range Compression And Contrast Enhancement


Dynamic Range Compression Dynamic range compression and the local contrast enhancement in WDRC are performed on the luminance channel. For input color images, the intensity image I(x,y) can be obtained with the following equation:

I(x, y) = max[Ii (x, y)], i {R,G,B}. (3)


The enhancement algorithm is applied on this intensity image.The luminance values are decomposed using orthonormal wavelet transform as shown in (4):

where aJ,k,l are the approximation coefficients at scale J with corresponding scaling functions FJ,k,l (x, y) , and d j,k,l are the detail coefficients at each scale with corresponding wavelet functions Yj,k,l (x, y) . A raised hyperbolic sinefunction given by Equation 5 maps the normalized range [0,1] of aJ,k,l to the same range, and is used for compressing the dynamic range represented by the coefficients. The compressed coefficients at level J can be obtained by

where a J,k,l are normalized coefficients given by

and, r is the curvature parameter which adjusts the shape of the hyperbolic sine function. Applying the mapping operator to the coefficients and taking the inverse wavelet transform would result in a compressed dynamic range with a significant loss of contrast. Thus, a center/surround procedure that preserves/enhances the local contrast is applied to those mapped coefficients.

Local Contrast Enhancement The local contrast enhancement which employs a center/surround approach is carried out as follows The surrounding intensity information related to each coefficient is obtained by filtering the normalized approximation coefficients with a Gaussian kernel.

where s is the surround space constant, and k is determined under the constraint that

Local average image representing the surround is obtained by 2D convolution of (7) with image A , the elements of which are the normalized approximation coefficients a J,k,l and given

by (6) :

The contrast enhanced coefficients matrix Anew which will replace the original approximation coefficients aJ,k,l is given by

where, R is the centre/surround ratio given by

d is the enhancement strength

constant with a default value of 1; A is the matrix whose elements are the output of the hyperbolic sine function in (5). A linear combination of three kernels with three different scales, combined-scaleGaussian (Gc ), is used for improved rendition is given by

Detail Coefficient Modification

The detail coefficients are modified using the ratio between the enhanced and original approximation coefficients. This ratio is applied as an adaptive gain mask such as:

where A and Anew are the original and the enhanced approximation coefficient matrices at level 1; Dh , Dv , Dd are the detail coefficient matrices for horizontal, vertical and diagonal details at the same level, and Dnew h , Dnew v , Dnew d are the corresponding modified matrices, respectively. If the wavelet decomposition is carried out for more than one level, this procedure is repeated for each level.

Color Restoration

A linear color restoration process is used to obtain the final color image in our previous work .For WDRC with color restoration a non-linear approach is employed. The RGB values of the enhanced color image ( , ) , I x y enh i along with the CR factor are given as:

where Ii(x, y)is the RGB values of the input color image at the corresponding pixel location and Ienh (x, y) is the resulting enhanced intensity image derived from the inverse wavelet transform of the modified coefficients. Here _ is the non-linear gain factor

corresponding. This factor has a canonical value and increases the color saturation resulting in more appealing color rendition. Since the coefficients are normalized during the enhancement process, the enhanced intensity image obtained by the inverse transform of enhanced coefficients, along with the enhanced color image given by (15) span almost only the lower half of the full range of the histogram. For the final display domain output enh i I , s in (15) are stretched to represent the full dynamic range. Histogram clipping from the upper tail of histograms in each channel give the best results in converting the output to display domain.

CONCLUSION

In this project application of the WDRC algorithm in aerial imagery is presented. The results obtained from large variety of aerial images show strong robustness, high image quality, and improved visibility indicating promise for aerial imagery during poor visibility flight conditions. This algorithm can further be applied to real time video streaming and the enhanced video can be projected to the pilots heads-up display for aviation safety.

REFERENCES

[1] D. J. Jobson, Z. Rahman, G. A. Woodell, G.D.Hines, A Comparison of Visual Statistics for the Image Enhancement of FORESITE Aerial Images with Those of Major Image Classes, Visual Information Processing XV, Proc. SPIE 6246, (2006) [2] S. M. Pizer, J. B. Zimmerman, and E. Staab, Adaptive grey level assignment in CT scan display, Journal of Computer Assistant Tomography, vol. 8, pp. 300-305 ,(1984). [3] J. B. Zimmerman, S. B. Cousins, K. M. Hartzell, M. E. Frisse, and M. G. Kahn, A psychophysical comparison of two methods for adaptive histogram equalization, Journal of Digital Imaging, vol. 2, pp. 82-91 (1989). [4] S. M. Pizer and E. P. Amburn, Adaptive histogram equalization and its variations, Computer Vision, Graphics, and Image Processing, vol. 39, pp. 355-368, (1987). [5] K. Rehm and W. J. Dallas, Artifact suppression in digital chest radiographs enhanced with adaptive histogram equalization, SPIE: Medical Imaging III, (1989). [6] Y. Jin, L. M. Fayad, and A. F. Laine, Contrast enhancement by multiscale adaptive histogram equalization, Proc. SPIE, vol. 4478, pp. 206-213, (2001). [7] E. Land and J. McCann, Lightness and Retinex theory, Journal of the Optical Society of America, vol. 61, pp. 1-11, (1971). [8] A. Hurlbert, Formal Connections Between Lightness Algorithms, Journal of the Optical Society of America, vol. 3, No 10 pp. 1684-1693, (1986).

[9] E. Land, An alternative technique for the computation of the designator in the Retinex theory of color vision, Proc. of the National. [10] J. McCann, Lessons learned from mondrians applied to real images and color gamuts, Proc. IS&T/SID Seventh Color Imaging Conference, pp. 1-8, (1999). [11] R. Sobol, Improving the Retinex algorithm for rendering wide dynamic range photographs, Proc. SPIE 4662, pp. 341348, (2002). [12] A. Rizzi, C. Gatta, and D. Marini, From Retinex to ACE: Issues in developing a new algorithm for unsupervised color equalization, Journal of Electronic Imaging, vol. 13, pp. 7584, (2004). [13] D. J. Jobson, Z. Rahman and G.A. Woodell, Properties and performance of a center/surround retinex, IEEE Transactions onImage Processing: Special Issue on Color Processing, No. 6, pp. 451462, (1997). [14] Z. Rahman, D. J. Jobson, and G. A. Woodell, Multiscale retinex forcolor image enhancement, Proc. IEEE International. Conference. on I Processing, (1996). [15] D. J. Jobson, Z. Rahman, and G. A. Woodell, A multi-scale retinex for bridging the gap between color images and the human observation of scenes, IEEE Transactions on Image Processing, Vol. 6, pp. 965-976, (1997). [16] Z. Rahman, D. J. Jobson, and G. A. Woodell, Retinex Processing for Automatic Image Enhancement", Journal of Electronic Imaging, January (2004).

Appendix A MATLAB
A.1 Introduction MATLAB is a high-performance language for technical computing. It integrates computation, visualization, and programming in an easy-to-use environment where problems and solutions are expressed in familiar mathematical notation. MATLAB stands for matrix laboratory, and was written originally to provide easy access to matrix software developed by LINPACK (linear system package) and EISPACK (Eigen system package) projects. MATLAB is therefore built on a foundation of sophisticated matrix software in which the basic element is array that does not require pre dimensioning which to solve many technical computing problems, especially those with matrix and vector formulations, in a fraction of time. MATLAB features a family of applications specific solutions called toolboxes. Very important to most users of MATLAB, toolboxes allow learning and applying specialized technology. These are comprehensive collections of MATLAB functions (M-files) that extend the MATLAB environment to solve particular classes of problems. Areas in which toolboxes are available include signal processing, control system, neural networks, fuzzy logic, wavelets, simulation and many others. Typical uses of MATLAB include: Math and computation, Algorithm development, Data acquisition, Modeling, simulation, prototyping, Data analysis, exploration, visualization, Scientific and engineering graphics, Application development, including graphical user interface building. A.2 Basic Building Blocks of MATLAB

The basic building block of MATLAB is MATRIX. The fundamental data type is the array. Vectors, scalars, real matrices and complex matrix are handled as specific class of this basic data type. The built in functions are optimized for vector operations. No dimension statements are required for vectors or arrays. A.2.1 MATLAB Window The MATLAB works based on five windows: Command window, Workspace window, Current directory window, Command history window, Editor Window, Graphics window and Online-help window. A.2.1.1 Command Window The command window is where the user types MATLAB commands and expressions at the prompt (>>) and where the output of those commands is displayed. It is opened when the application program is launched. All commands including user-written programs are typed in this window at MATLAB prompt for execution. A.2.1.2 Work Space Window MATLAB defines the workspace as the set of variables that the user creates in a work session. The workspace browser shows these variables and some information about them. Double clicking on a variable in the workspace browser launches the Array Editor, which can be used to obtain information. A.2.1.3 Current Directory Window The current Directory tab shows the contents of the current directory, whose path is shown in the current directory window. For example, in the windows operating system the path might be as follows: C:\MATLAB\Work, indicating that directory work is a subdirectory of the main directory MATLAB; which is installed in drive C. Clicking on the arrow in the current directory window shows a list of recently used paths. MATLAB uses a search path to find M-files and other MATLAB related files. Any file run in MATLAB must reside in the current directory or in a directory that is on search path. A.2.1.4 Command History Window

The Command History Window contains a record of the commands a user has entered in the command window, including both current and previous MATLAB sessions. Previously entered MATLAB commands can be selected and re-executed from the command history window by right clicking on a command or sequence of commands. This is useful to select various options in addition to executing the commands and is useful feature when experimenting with various commands in a work session. A.2.1.5 Editor Window The MATLAB editor is both a text editor specialized for creating M-files and a graphical MATLAB debugger. The editor can appear in a window by itself, or it can be a sub window in the desktop. In this window one can write, edit, create and save programs in files called M-files. MATLAB editor window has numerous pull-down menus for tasks such as saving, viewing, and debugging files. Because it performs some simple checks and also uses color to differentiate between various elements of code, this text editor is recommended as the tool of choice for writing and editing M-functions. A.2.1.6 Graphics or Figure Window The output of all graphic commands typed in the command window is seen in this window. A.2.1.7 Online Help Window MATLAB provides online help for all its built in functions and programming language constructs. The principal way to get help online is to use the MATLAB help browser, opened as a separate window either by clicking on the question mark symbol (?) on the desktop toolbar, or by typing help browser at the prompt in the command window. The help Browser is a web browser integrated into the MATLAB desktop that displays a Hypertext Markup Language (HTML) documents. The Help Browser consists of two panes, the help navigator pane, used to find information, and the display pane, used to view the information. Self-explanatory tabs other than navigator pane are used to perform a search. A.3 MATLAB Files MATLAB has three types of files for storing information. They are: M-files and MATfiles.

A.3.1 M-Files These are standard ASCII text file with m extension to the file name and creating own matrices using M-files, which are text files containing MATLAB code. MATLAB editor or another text editor is used to create a file containing the same statements which are typed at the MATLAB command line and save the file under a name that ends in .m. There are two types of M-files:

1. Script Files It is an M-file with a set of MATLAB commands in it and is executed by typing name of file on the command line. These files work on global variables currently present in that environment. 2. Function Files A function file is also an M-file except that the variables in a function file are all local. This type of files begins with a function definition line. A.3.2 MAT-Files These are binary data files with .mat extension to the file that are created by MATLAB when the data is saved. The data written in a special format that only MATLAB can read. These are located into MATLAB with load command. A.4 the MATLAB System: The MATLAB system consists of five main parts: A.4.1 Development Environment: This is the set of tools and facilities that help you use MATLAB functions and files. Many of these tools are graphical user interfaces. It includes the MATLAB desktop and Command

Window, a command history, an editor and debugger, and browsers for viewing help, the workspace, files, and the search path. A.4.2 the MATLAB Mathematical Function: This is a vast collection of computational algorithms ranging from elementary functions like sum, sine, cosine, and complex arithmetic, to more sophisticated functions like matrix inverse, matrix eigen values, Bessel functions, and fast Fourier transforms. A.4.3 the MATLAB Language: This is a high-level matrix/array language with control flow statements, functions, data structures, input/output, and object-oriented programming features. It allows both "programming in the small" to rapidly create quick and dirty throw-away programs, and "programming in the large" to create complete large and complex application programs. A.4.4 Graphics: MATLAB has extensive facilities for displaying vectors and matrices as graphs, as well as annotating and printing these graphs. It includes high-level functions for two-dimensional and three-dimensional data visualization, image processing, animation, and presentation graphics. It also includes low-level functions that allow you to fully customize the appearance of graphics as well as to build complete graphical user interfaces on your MATLAB applications. A.4.5 the MATLAB Application Program Interface (API): This is a library that allows you to write C and FORTRAN programs that interact with MATLAB. It includes facilities for calling routines from MATLAB (dynamic linking), calling MATLAB as a computational engine, and for reading and writing MAT-files. A.5 SOME BASIC COMMANDS: pwd Demo prints working directory demonstrates what is possible in Mat lab

Who Whose clear

lists all of the variables in your Mat lab workspace? list the variables and describes their matrix size erases variables and functions from memory

clear x erases the matrix 'x' from your workspace close by itself, closes the current figure window

figure creates an empty figure window hold on holds the current plot and all axis properties so that subsequent graphing commands add to the existing graph hold off sets the next plot property of the current axes to "replace" find find indices of nonzero elements e.g.: d = find(x>100) returns the indices of the vector x that are greater than 100 break for terminate execution of m-file or WHILE or FOR loop repeat statements a specific number of times, the general form of a FOR statement is: FOR variable = expr, statement, ..., statement END for n=1:cc/c; magn(n,1)=NaNmean(a((n-1)*c+1:n*c,1)); end diff difference and approximate derivative e.g.: DIFF(X) for a vector X, is [X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)]. NaN the arithmetic representation for Not-a-Number, a NaN is obtained as a

result of mathematically undefined operations like 0.0/0.0 INF the arithmetic representation for positive infinity, a infinity is also produced by operations like dividing by zero, e.g. 1.0/0.0, or from overflow, e.g. exp(1000). save saves all the matrices defined in the current session into the file, matlab.mat, located in the current working directory load loads contents of matlab.mat into current workspace saves the matrices x, y and z into the file titled filename.mat save the matrices x, y and z into the file titled filename.dat loads the contents of filename into current workspace; the file can be a binary (.mat) file load filename.dat loads the contents of filename.dat into the variable filename

save filename x y z save filename x y z /ascii load filename

xlabel( ) : Allows you to label x-axis ylabel( ) : Allows you to label y-axis title( ) : Allows you to give title for plot subplot() : Allows you to create multiple plots in the same window A.6 SOME BASIC PLOT COMMANDS: Kinds of plots: plot(x,y) plot(y) creates a Cartesian plot of the vectors x & y creates a plot of y vs. the numerical values of the elements in the y-vector

semilogx(x,y) plots log(x) vs y semilogy(x,y) plots x vs log(y) loglog(x,y) plots log(x) vs log(y)

polar(theta,r) creates a polar plot of the vectors r & theta where theta is in radians bar(x) bar(x, y) creates a bar graph of the vector x. (Note also the command stairs(x)) creates a bar-graph of the elements of the vector y, locating the bars according to the vector elements of 'x' Plot description: grid title('text') xlabel('text') ylabel('text') creates a grid on the graphics plot places a title at top of graphics plot writes 'text' beneath the x-axis of a plot writes 'text' beside the y-axis of a plot

text(x,y,'text') writes 'text' at the location (x,y) text(x,y,'text','sc') writes 'text' at point x,y assuming lower left corner is (0,0) and upper right corner is (1,1) axis([xmin xmax ymin ymax]) sets scaling for the x- and y-axes on the current plot A.7 ALGEBRIC OPERATIONS IN MATLAB: Scalar Calculations: + * Addition Subtraction Multiplication

/ \ ^

Right division (a/b means a b) left division (a\b means b a) Exponentiation 3*4 4/5 executed in 'matlab' gives ans=12 gives ans=0.8

For example

Array products: Recall that addition and subtraction of matrices involved addition or subtraction of the individual elements of the matrices. Sometimes it is desired to simply multiply or divide each element of an matrix by the corresponding element of another matrix 'array operations. Array or element-by-element operations are executed when the operator is preceded by a '.' (Period): a .* b a ./ b a .\ b a .^ b multiplies each element of a by the respective element of b divides each element of a by the respective element of b divides each element of b by the respective element of a raise each element of a by the respective b element

A.8 MATLAB WORKING ENVIRONMENT: A.8.1 MATLAB DESKTOP Matlab Desktop is the main Matlab application window. The desktop contains five sub windows, the command window, the workspace browser, the current directory window, the command history window, and one or more figure windows, which are shown only when the user displays a graphic. The command window is where the user types MATLAB commands and expressions at the prompt (>>) and where the output of those commands is displayed. MATLAB defines the workspace as the set of variables that the user creates in a work session.

The workspace browser shows these variables and some information about them. Double clicking on a variable in the workspace browser launches the Array Editor, which can be used to obtain information and income instances edit certain properties of the variable. The current Directory tab above the workspace tab shows the contents of the current directory, whose path is shown in the current directory window. For example, in the windows operating system the path might be as follows: C:\MATLAB\Work, indicating that directory work is a subdirectory of the main directory MATLAB; WHICH IS INSTALLED IN DRIVE C. clicking on the arrow in the current directory window shows a list of recently used paths. Clicking on the button to the right of the window allows the user to change the current directory. MATLAB uses a search path to find M-files and other MATLAB related files, which are organize in directories in the computer file system. Any file run in MATLAB must reside in the current directory or in a directory that is on search path. By default, the files supplied with MATLAB and math works toolboxes are included in the search path. The easiest way to see

which directories are soon the search path, or to add or modify a search path, is to select set path from the File menu the desktop, and then use the set path dialog box. It is good practice to add any commonly used directories to the search path to avoid repeatedly having the change the current directory. The Command History Window contains a record of the commands a user has entered in the command window, including both current and previous MATLAB sessions. Previously entered MATLAB commands can be selected and re-executed from the command history window by right clicking on a command or sequence of commands. This action launches a menu from which to select various options in addition to executing the commands. This is useful to select various options in addition to executing the commands. This is a useful feature when experimenting with various commands in a work session.

A.8.2 Using the MATLAB Editor to create M-Files:

The MATLAB editor is both a text editor specialized for creating M-files and a graphical MATLAB debugger. The editor can appear in a window by itself, or it can be a sub window in the desktop. M-files are denoted by the extension .m, as in pixelup.m. The MATLAB editor window has numerous pull-down menus for tasks such as saving, viewing, and debugging files. Because it performs some simple checks and also uses color to differentiate between various elements of code, this text editor is recommended as the tool of choice for writing and editing M-functions. To open the editor , type edit at the prompt opens the M-file filename.m in an editor window, ready for editing. As noted earlier, the file must be in the current directory, or in a directory in the search path. A.8.3 Getting Help: The principal way to get help online is to use the MATLAB help browser, opened as a separate window either by clicking on the question mark symbol (?) on the desktop toolbar, or by typing help browser at the prompt in the command window. The help Browser is a web browser integrated into the MATLAB desktop that displays a Hypertext Markup Language(HTML) documents. The Help Browser consists of two panes, the help navigator pane, used to find information, and the display pane, used to view the information. Self-explanatory tabs other than navigator pane are used to perform a search.

Appendix B
INTRODUCTION TO DIGITAL IMAGE PROCESSING 6.1 What is DIP? An image may be defined as a two-dimensional function f(x, y), where x & y are spatial coordinates, & the amplitude of f at any pair of coordinates (x, y) is called the intensity or gray level of the image at that point. When x, y & the amplitude values of f are all finite

discrete quantities, we call the image a digital image. The field of DIP refers to processing digital image by means of digital computer. Digital image is composed of a finite number of elements, each of which has a particular location & value. The elements are called pixels. Vision is the most advanced of our sensor, so it is not surprising that image play the single most important role in human perception. However, unlike humans, who are limited to the visual band of the EM spectrum imaging machines cover almost the entire EM spectrum, ranging from gamma to radio waves. They can operate also on images generated by sources that humans are not accustomed to associating with image.

There is no general agreement among authors regarding where image processing stops & other related areas such as image analysis& computer vision start. Sometimes a distinction is made by defining image processing as a discipline in which both the input & output at a process are images. This is limiting & somewhat artificial boundary. The area of image analysis (image understanding) is in between image processing & computer vision.

There are no clear-cut boundaries in the continuum from image processing at one end to complete vision at the other. However, one useful paradigm is to consider three types of computerized processes in this continuum: low-, mid-, & high-level processes. Low-level process involves primitive operations such as image processing to reduce noise, contrast enhancement & image sharpening. A low- level process is characterized by the fact that both its inputs & outputs are images. Mid-level process on images involves tasks such as segmentation, description of that object to reduce them to a form suitable for computer processing & classification of individual objects. A mid-level process is characterized by the fact that its inputs generally are images but its outputs are attributes extracted from those images. Finally higherlevel processing involves Making sense of an ensemble of recognized objects, as in image

analysis & at the far end of the continuum performing the cognitive functions normally associated with human vision.

Digital image processing, as already defined is used successfully in a broad range of areas of exceptional social & economic value. 6.2 What is an image? An image is represented as a two dimensional function f(x, y) where x and y are spatial coordinates and the amplitude of f at any pair of coordinates (x, y) is called the intensity of the image at that point.

Gray scale image: A grayscale image is a function I (xylem) of the two spatial coordinates of the image plane. I(x, y) is the intensity of the image at the point (x, y) on the image plane. I (xylem) takes non-negative values assume the image is bounded by a rectangle [0, a] [0, b]I: [0, a] [0, b] [0, info) Color image: It can be represented by three functions, R (xylem) for red, G (xylem) for green and B (xylem) for blue. An image may be continuous with respect to the x and y coordinates and also in

amplitude. Converting such an image to digital form requires that the coordinates as well as the amplitude to be digitized. Digitizing the coordinates values is called sampling. Digitizing the amplitude values is called quantization. 6.3 Coordinate convention: The result of sampling and quantization is a matrix of real numbers. We use two principal ways to represent digital images. Assume that an image f(x, y) is sampled so that the resulting

image has M rows and N columns. We say that the image is of size M X N. The values of the coordinates (xylem) are discrete quantities. For notational clarity and convenience, we use integer values for these discrete coordinates. In many image processing books, the image origin is defined to be at (xylem)=(0,0).The next coordinate values along the first row of the image are (xylem)=(0,1).It is important to keep in mind that the notation (0,1) is used to signify the second sample along the first row. It does not mean that these are the actual values of physical coordinates when the image was sampled. Following figure shows the coordinate convention. Note that x ranges from 0 to M-1 and y from 0 to N-1 in integer increments. The coordinate convention used in the toolbox to denote arrays is different from the preceding paragraph in two minor ways. First, instead of using (xylem) the toolbox uses the notation (race) to indicate rows and columns. Note, however, that the order of coordinates is the same as the order discussed in the previous paragraph, in the sense that the first element of a coordinate topples, (alb), refers to a row and the second to a column. The other difference is that the origin of the coordinate system is at (r, c) = (1, 1); thus, r ranges from 1 to M and c from 1 to N in integer increments. IPT documentation refers to the coordinates. Less frequently the toolbox also employs another coordinate convention called spatial coordinates which uses x to refer to columns and y to refers to rows. This is the opposite of our use of variables x and y. 6.4 Image as Matrices: The preceding discussion leads to the following representation for a digitized image function: f (0, 0) f (1, 0) f (xylem) = . . . f (0, 1) f (1, 1) . . .. f (0, N-1) f (1, N-1) .

f (M-1, 0) f (M-1, 1) f (M-1, N-1)

The right side of this equation is a digital image by definition. Each element of this array is called an image element, picture element, pixel or pel. The terms image and pixel are used throughout the rest of our discussions to denote a digital image and its elements. A digital image can be represented naturally as a MATLAB matrix: f (1, 1) f (1, 2) . f (1, N) f (2, 1) f (2, 2) .. f (2, N) . f= . . . . .

f (M, 1) f (M, 2) .f (M, N) Where f (1, 1) = f (0, 0) (note the use of a monoscope font to denote MATLAB quantities). Clearly the two representations are identical, except for the shift in origin. The notation f (p, q) denotes the element located in row p and the column q. For example f (6, 2) is the element in the sixth row and second column of the matrix f. typically we use the letters M and N respectively to denote the number of rows and columns in a matrix. A 1xN matrix is called a row vector whereas an Mx1 matrix is called a column vector. A 1x1 matrix is a scalar. Matrices in MATLAB are stored in variables with names such as A, a, RGB, real array and so on. Variables must begin with a letter and contain only letters, numerals and underscores. As noted in the previous paragraph, all MATLAB quantities are written using monoscope characters. We use conventional Roman, italic notation such as f(x, y), for mathematical expressions 6.5 Reading Images: Images are read into the MATLAB environment using function imread whose syntax is imread(filename)

Format name TIFF JPEG GIF BMP PNG XWD

Description Tagged Image File Format Joint Photograph Experts Group Graphics Interchange Format Windows Bitmap Portable Network Graphics X Window Dump

recognized extension .tif, .tiff .jpg, .jpeg .gif .bmp .png .xwd

Here filename is a spring containing the complete of the image file(including any applicable extension).For example the command line >> f = imread (8. jpg); reads the JPEG (above table) image chestxray into image array f. Note the use of single quotes () to delimit the string filename. The semicolon at the end of a command line is used by MATLAB for suppressing output. If a semicolon is not included. MATLAB displays the results of the operation(s) specified in that line. The prompt symbol(>>) designates the beginning of a command line, as it appears in the MATLAB command window. When as in the preceding command line no path is included in filename, imread reads the file from the current directory and if that fails it tries to find the file in the MATLAB search path. The simplest way to read an image from a specified directory is to include a full or relative path to that directory in filename. For example, >> f = imread ( D:\myimages\chestxray.jpg); reads the image from a folder called my images on the D: drive, whereas

>> f = imread( . \ myimages\chestxray .jpg); reads the image from the my images subdirectory of the current of the current working directory. The current directory window on the MATLAB desktop toolbar displays MATLABs current working directory and provides a simple, manual way to change it. Above table lists some of the most of the popular image/graphics formats supported by imread and imwrite. Function size gives the row and column dimensions of an image: >> size (f) ans = 1024 * 1024 This function is particularly useful in programming when used in the following form to determine automatically the size of an image: >>[M,N]=size(f); This syntax returns the number of rows(M) and columns(N) in the image. The whole function displays additional information about an array. For instance ,the statement >> whos f gives Name F size 1024*1024 Bytes 1048576 Class unit8 array

Grand total is 1048576 elements using 1048576 bytes The unit8 entry shown refers to one of several MATLAB data classes. A semicolon at the end of a whose line has no effect ,so normally one is not used.

6.6 Displaying Images: Images are displayed on the MATLAB desktop using function imshow, which has the basic syntax: imshow(f,g) Where f is an image array, and g is the number of intensity levels used to display it. If g is omitted ,it defaults to 256 levels .using the syntax Imshow (f, {low high}) Displays as black all values less than or equal to low and as white all values greater than or equal to high. The values in between are displayed as intermediate intensity values using the default number of levels .Finally the syntax Imshow(f,[ ]) Sets variable low to the minimum value of array f and high to its maximum value. This form of imshow is useful for displaying images that have a low dynamic range or that have positive and negative values. Function pixval is used frequently to display the intensity values of individual pixels interactively. This function displays a cursor overlaid on an image. As the cursor is moved over the image with the mouse the coordinates of the cursor position and the corresponding intensity values are shown on a display that appears below the figure window .When working with color images, the coordinates as well as the red, green and blue components are displayed. If the left button on the mouse is clicked and then held pressed, pixval displays the Euclidean distance between the initial and current cursor locations. The syntax form of interest here is Pixval which shows the cursor on the last image displayed. Clicking the X button on the cursor window turns it off.

The following statements read from disk an image called rose_512.tif extract basic information about the image and display it using imshow : >>f=imread(rose_512.tif); >>whos f Name F Size 512*512 Bytes 262144 Class unit8 array

Grand total is 262144 elements using 262144 bytes >>imshow(f) A semicolon at the end of an imshow line has no effect, so normally one is not used. If another image,g, is displayed using imshow, MATLAB replaces the image in the screen with the new image. To keep the first image and output a second image, we use function figure as follows: >>figure ,imshow(g) Using the statement >>imshow(f),figure ,imshow(g) displays both images.

Note that more than one command can be written on a line ,as long as different commands are properly delimited by commas or semicolons. As mentioned earlier, a semicolon is used whenever it is desired to suppress screen outputs from a command line. Suppose that we have just read an image h and find that using imshow produces the image. It is clear that this image has a low dynamic range, which can be remedied for display purposes by using the statement.

>>imshow(h,[ ]) 6.7 WRITING IMAGES: Images are written to disk using function imwrite, which has the following basic syntax: Imwrite (f,filename) With this syntax, the string contained in filename must include a recognized file format extension .Alternatively, the desired format can be specified explicitly with a third input argument. >>imwrite(f,patient10_run1,tif) Or alternatively For example the following command writes f to a TIFF file named patient10_run1: >>imwrite(f,patient10_run1.tif) If filename contains no path information, then imwrite saves the file in the current working directory. The imwrite function can have other parameters depending on e file format selected. Most of the work in the following deals either with JPEG or TIFF images ,so we focus attention here on these two formats.

More general imwrite syntax applicable only to JPEG images is imwrite(f,filename.jpg,,quality,q) where q is an integer between 0 and 100(the lower number the higher the degradation due to JPEG compression). For example, for q=25 the applicable syntax is

>> imwrite(f,bubbles25.jpg,quality,25) The image for q=15 has false contouring that is barely visible, but this effect becomes quite pronounced for q=5 and q=0.Thus, an expectable solution with some margin for error is to compress the images with q=25.In order to get an idea of the compression achieved and to obtain other image file details, we can use function imfinfo which has syntax. Imfinfo filename Here filename is the complete file name of the image stored in disk. For example, >> imfinfo bubbles25.jpg outputs the following information(note that some fields contain no information in this Filename: bubbles25.jpg FileModDate: 04-jan-2003 12:31:26 FileSize: Format: 13849 jpg case):

Format Version: Width: Height: Bit Depth: 714 682 8

Color Depth:

grayscale

Format Signature:

Comment:

{}

Where file size is in bytes. The number of bytes in the original image is corrupted simply by multiplying width by height by bit depth and dividing the result by 8. The result is 486948.Dividing this file size gives the compression ratio:(486948/13849)=35.16.This compression ratio was achieved. While maintaining image quality consistent with the requirements of the appearance. In addition to the obvious advantages in storage space, this reduction allows the transmission of approximately 35 times the amount of un compressed data per unit time. The information fields displayed by imfinfo can be captured in to a so called structure variable that can be for subsequent computations. Using the receding an example and assigning the name K to the structure variable. We use the syntax >>K=imfinfo(bubbles25.jpg);

To store in to variable K all the information generated by command imfinfo, the information generated by imfinfo is appended to the structure variable by means of fields, separated from K by a dot. For example, the image height and width are now stored in structure fields K. Height and K. width. As an illustration, consider the following use of structure variable K to commute the compression ratio for bubbles25.jpg: >> K=imfinfo(bubbles25.jpg); >> image_ bytes =K.Width* K.Height* K.Bit Depth /8; >> Compressed_ bytes = K.FilesSize; >> Compression_ ratio=35.162 Note that iminfo was used in two different ways. The first was t type imfinfo bubbles25.jpg at the prompt, which resulted in the information being displayed on the screen. The second was

to type K=imfinfo (bubbles25.jpg),which resulted in the information generated by imfinfo being stored in K. These two different ways of calling imfinfo are an example of command_ function duality, an important concept that is explained in more detail in the MATLAB online documentation. More general imwrite syntax applicable only to tif images has the form Imwrite(g,filename.tif,compression,parameter,.resloution,[colres rowers] )

Where parameter can have one of the following principal values: none indicates no compression, pack bits indicates pack bits compression (the default for non binary images) and ccitt indicates ccitt compression. (the default for binary images).The 1*2 array [colres rowers] Contains two integers that give the column resolution and row resolution in dot per_ unit (the default values). For example, if the image dimensions are in inches, colres is in the number of dots(pixels)per inch (dpi) in the vertical direction and similarly for rowers in the horizontal direction. Specifying the resolution by single scalar, res is equivalent to writing [res res]. >>imwrite(f,sf.tif,compression,none,resolution,..[300 300]) the values of the vector[colures rows] were determined by multiplying 200 dpi by the ratio 2.25/1.5, which gives 30 dpi. Rather than do the computation manually, we could write >> res=round(200*2.25/1.5); >>imwrite(f,sf.tif,compression,none,resolution,res) where its argument to the nearest integer.It function round rounds is important to note that the number of pixels was not changed by these commands. Only the scale of the image changed. The original 450*450 image at 200 dpi is of size 2.25*2.25 inches. The new 300_dpi image is identical, except that is 450*450 pixels are distributed over a 1.5*1.5_inch area. Processes such

as this are useful for controlling the size of an image in a printed document with out sacrificing resolution. Often it is necessary to export images to disk the way they appear on the MATLAB desktop. This is especially true with plots .The contents of a figure window can be exported to disk in two ways. The first is to use the file pull-down menu is in the figure window and then choose export. With this option the user can select a location, filename, and format. More control over export parameters is obtained by using print command: Print-fno-dfileformat-rresno filename Where no refers to the figure number in the figure window interest, file format refers one of the file formats in table above. resno is the resolution in dpi, and filename is the name we wish to assign the file.
If we simply type print at the prompt, MATLAB prints (to the default printer) the contents of the last figure window displayed. It is possible also to specify other options with print, such as specific printing device.

Potrebbero piacerti anche