1.5K views

Uploaded by pi194043

This article describes the Tan and Triggs Illumination normalization procedure

save

- opencv2refman
- SweetFX_preset.txt
- p28-31 Luminous 3-09 Octavio Frias de Oliveira Bridge Sao Paulo Brazil
- 1944_7
- Image Enhancement
- Color Grading Process - Get Started in DaVinci Resolve Part 2
- 2017-11-30-02-13-11
- Exam 1 2012 practice exam.pdf
- Calibration How-To v1
- Hsg38 Lighting at Work
- Freezerlight Slim - FZLS - 1EZW004GB_brandnew
- eRep-BOMA BESt Assessment – Open Air Retail Properties
- OSRAM_LED_Catalog
- A Multi-sensor Office-building Database for Experimental Validation
- On the Calibration and Commissioning of Lighting Controls
- U-HGLGPS-US-EU_en
- Lighting Calculations, Lighting, Calculations, Formulas
- bode-plot-bds-26-3-2015.pdf
- A
- Floodlight doc
- OpenVision Library Gaussian Mixture Model Implementation
- Adaptive Skin Color Detector
- ARM Neon Optimization for image interleaving and deinterleaving
- A linear channel filter
- Dense optical flow expansion based on polynomial basis approximation
- Continuous Emission Hidden Markov Model for sequence classification
- Fast 2D Separable Symmetric/Anti-Symmmetric Convolution
- Implementation of discrete hidden markov model for sequence classification in C++ using Eigen
- Markov chain implementation in C++ using Eigen
- Modified Canny Edge Detection
- Polynomial Approximation of 2D image patch -Part 2
- Gaussian Multivariate Distribution -Part 1
- Multi Class Logistic Regression Training and Testing
- Compiling Native C/C++ library for Android
- C++ virtual functions and abstract class
- C++ static members and function
- Uniform Local Binary Pattern and Spatial Histogram Computation
- Normalized convolution for image interpolation
- Mean Shift Algorithm
- Local Binary Pattern
- C++ Inheritance
- Polynomial Approximation of 1D signal
- C++ Const,Volatile Type Qualifiers
- polynomial approximation of a 2D signal
- Integral Image for Computation of Mean And Variance
- Random Ferns for Patch Description
- Embedded Systems Programming with ARM on Linux - Blinking LED
- interphone-filaire
- 7sd 522 presentation studies
- Questões Anac AVI
- IECEx_BKI07.0041--1--PX04.pdf
- Director of Sales or VP of Sales or National Sales Manager or Di
- Circuitos Elc II (RA)
- Transmission Lines and E.M. Waves Lec 13
- instrucciones (1).pdf
- Buck Converter Reference Design-TI
- Kabel Nyy Supreme Lv Pvc Cable
- ApuntesTeoremas
- Application Note_Power Analysis of PWM Motor Drives_55W-28942-0
- Dft - Dtft - Ctft Relations
- Ch17 Complete Set
- Catalogo Commax
- OBJETIVO DE LA PRÁCTICA
- Wp Implement h1 Field Devices Softing
- Maintenance Bypass Box for Parallel UPSs Installation & Operation Guide
- Petronix d175510 - Rover v8
- Aei Corona
- Microcontroladores 4
- manejo xilinx
- 2008 NEC Changes
- Bombas de Lodo KSB
- Presentación trasmisor rosemount
- Intro Elec Practico 2
- VEH MB TRANS 722.6 Transmission (ETC), Diagnosis Error Codes
- Deutsch Vwg
- Qb for Uploading
- FT8 Hinson Tips for HF DXers

You are on page 1of 8

Pi19404

January 23, 2014

Contents

Contents

Tan and Triggs Illumination Normalization

Introduction . . . . . . . . . . . . . . . . . . . . . 0.1.1 Illumination and Reflectance . . . . 0.1.2 Gamma Correction . . . . . . . . . . 0.1.3 Difference of Gaussian Filtering 0.1.4 Contrast Equalization . . . . . . . . 0.1.5 code . . . . . . . . . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . . . . . . . . . . . 0.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

3 3 4 5 6 8 8

2 | 8

0.1 Introduction

In this article we will look at Tan and Triggs Illumination Normalization method . The purpose is to preprocess images so as to make them robust/invariant to illumination changes by employing a preprocessing step.

The present algorithm uses a series of step to counter the effects of illumination variation,local shadowing and highlights. Preprocessing algorithms typicall introduce distortion in the image,however the aim is to presever the disticntive features of the image. The preprocessing chain consists of following steps : Gamma Correction -> Difference of Gaussian Filtering ->Masking >Contrast Equalization

The intensity of light reflected from a object is production of illumination and sufrace reflectance components f (x; y ) = I (x; y ) R(x; y ) Illumination I is ammount of light indident on the scene and is dependent on external conditions. Reflectance is ammount of light reflected by the object,and arises from property of object themselves. To compensate for non uniform illumination the aim is to remove the illumination component which is dependent on lighting condition during image capture so that only reflectance component that truly is a object property remains. Illumination varies slowly across the image as compared to reflectance.

3 | 8

Illumination can be considered as low frequency,while reflectance is a high frequency component present in the image. the product can be expressed as a sum by taking log log (I (x; y )) + log (R(x; y ))

Gamma Correction is a non linear gray level transformation that replaces each pixel with intensity I in the image with I for 0 1 or log (I ) if = 0. Thus a gamma correction increases the dynamic range of the image. The scale of the output image be from 0 to 255 Gamma=1,is a identity transformation,where every pixel is mapped to itself. Gamma=0.5 we can see that pixels from 0-50 are mapped to larger range of 0-115 while pixels in the range 200-255 are mapped to a smaller range of 230-255. Thus gamma correction has the effect of enhancing the dynamic range of image in the dark regions while compressing it in the bright regions. Therby improving the visibility can the contrast of the image.

Mat gammaCorrection(Mat image,float gamma) { Mat tmp; image.convertTo(tmp, CV_32FC1,1.0/255.0,0); pow(tmp, gamma, tmp); tmp.convertTo(tmp,CV_8UC1,255.0,0); return tmp; }

4 | 8

Increasing the gamma ,increases dynamic range in darker regions while compresses it in the brighter regions further

Gamma correction or any other form of contrast normalization algorithm does no remove the overall effects of intensity gradients such as shading effects.

Shading effects are considered to be predominantly low frequency phenemenon. It is not possible to distinguish between a illumination gradient and one caused by shading effects of surface structure Since illumination is also modelled as low frequency phenomenon. A high pass filtering operations can be performed to remove these components. DoG filter is a way to perform bandpass filtering operations which remove shading and illumination components in the image ,and also reduces the noise. Dog Filter consists of 2 DoG filter approximates a laplacian of gaussian filter,which is used for edge detection The output of DoG Filter is a edge intensity image. Gaussians are charactesize by mean and variance/std deviation(sigma). A large sigma will blur out the fine details/edges while low pass filtering, hence a small sigma is used which will only eliminate the noise.

5 | 8

The second gaussian has a large sigma,which removes high frequency details in the image and retains only low frequency components of the image . Now from we subtract this low frequency image from the original low pass filtered image,therby obtaining a high frequency edge image. Typically 1:2 ratio between the two gaussians provides good result. In present implementation the sigma is chosen as 3 and 7 for the gaussians

The final step of our preprocessing chain is contrast equalization which globally rescales the image intensities to standardize a robust measure of overall contrast or intensity varia- tion. Since DOG approximate gradient,there are bound to be extreme value produced by highlights,shadows and noise etc

I I

=

I I

(mean(I )) alpha

1

(1)

(2)

I tanh( )

(3) (4)

The output of above steps is a image with pixel intensity in the ranges (; ) To get a integer output ,we normalize the values between 0 to 255

6 | 8

Mat tmp; image.convertTo(tmp,CV_32FC1,1.0/255.0,0); Mat gaussian0, gaussian1; int kernel_sz0 = (sigma0); int kernel_sz1 = (sigma1); kernel_sz0 += ((kernel_sz0 % 2) == 0) ? 1 : 0; kernel_sz1 += ((kernel_sz1 % 2) == 0) ? 1 : 0; GaussianBlur(tmp, gaussian0, Size(kernel_sz0,kernel_sz0), sigma0, sigma0, BORD GaussianBlur(tmp, gaussian1, Size(kernel_sz1,kernel_sz1), sigma1, sigma1, BORD //difference of gaussian cv::subtract(gaussian0,gaussian1,tmp); Mat tmp1; //contrast streching double meanI = 0.0; cv::pow(abs(tmp),alpha,tmp1); meanI = mean(tmp1).val[0]; tmp = tmp / pow(meanI, 1.0f/alpha); pow(min(abs(tmp), tau), alpha, tmp1); meanI = mean(tmp1).val[0]; tmp = tmp / pow(meanI, 1.0f/alpha);

//tanh normalization for(int r = 0; r < tmp.rows; r++) { for(int c = 0; c < tmp.cols; c++) { tmp.at<float>(r,c) = tanh(tmp.at<float>(r,c) / tau); } } tmp = tau * tmp; tmp=tmp+tau; //integer value normalization cv::normalize(tmp,tmp,0,255,CV_MINMAX); tmp.convertTo(tmp,CV_8UC1,1.0,0); return tmp; }

7 | 8

0.1.5 code

The code for this can be found in git repo /media/UBUNTU/repository/ OpenVisionLibrary/OpenVision in ImgProc/preprocess.hpp and ImgProc/preprocess.cpp files

8 | 8

- opencv2refmanUploaded byjayneildalal
- SweetFX_preset.txtUploaded bymenno_best
- p28-31 Luminous 3-09 Octavio Frias de Oliveira Bridge Sao Paulo BrazilUploaded byAndhi Setyawan
- 1944_7Uploaded byManish Mohan Gupta
- Image EnhancementUploaded bya_44m
- Color Grading Process - Get Started in DaVinci Resolve Part 2Uploaded byTakhai Mohamed
- 2017-11-30-02-13-11Uploaded byCarla Kalengkongan
- Exam 1 2012 practice exam.pdfUploaded byAhmed Ellkholy
- Calibration How-To v1Uploaded byKyonSama
- Hsg38 Lighting at WorkUploaded byJason Robert Rameshwar
- Freezerlight Slim - FZLS - 1EZW004GB_brandnewUploaded byjonex2003
- eRep-BOMA BESt Assessment – Open Air Retail PropertiesUploaded byJurizal Julian Luthan
- OSRAM_LED_CatalogUploaded bypranavom
- A Multi-sensor Office-building Database for Experimental ValidationUploaded byhernan666999
- On the Calibration and Commissioning of Lighting ControlsUploaded byDEShif
- U-HGLGPS-US-EU_enUploaded byAntitupa Isidro
- Lighting Calculations, Lighting, Calculations, FormulasUploaded bybhargavacharya
- bode-plot-bds-26-3-2015.pdfUploaded byNikhil Patwari
- AUploaded byRahul Nawani
- Floodlight docUploaded byChris Ford

- OpenVision Library Gaussian Mixture Model ImplementationUploaded bypi194043
- Adaptive Skin Color DetectorUploaded bypi194043
- ARM Neon Optimization for image interleaving and deinterleavingUploaded bypi194043
- A linear channel filterUploaded bypi194043
- Dense optical flow expansion based on polynomial basis approximationUploaded bypi194043
- Continuous Emission Hidden Markov Model for sequence classificationUploaded bypi194043
- Fast 2D Separable Symmetric/Anti-Symmmetric ConvolutionUploaded bypi194043
- Implementation of discrete hidden markov model for sequence classification in C++ using EigenUploaded bypi194043
- Markov chain implementation in C++ using EigenUploaded bypi194043
- Modified Canny Edge DetectionUploaded bypi194043
- Polynomial Approximation of 2D image patch -Part 2Uploaded bypi194043
- Gaussian Multivariate Distribution -Part 1Uploaded bypi194043
- Multi Class Logistic Regression Training and TestingUploaded bypi194043
- Compiling Native C/C++ library for AndroidUploaded bypi194043
- C++ virtual functions and abstract classUploaded bypi194043
- C++ static members and functionUploaded bypi194043
- Uniform Local Binary Pattern and Spatial Histogram ComputationUploaded bypi194043
- Normalized convolution for image interpolationUploaded bypi194043
- Mean Shift AlgorithmUploaded bypi194043
- Local Binary PatternUploaded bypi194043
- C++ InheritanceUploaded bypi194043
- Polynomial Approximation of 1D signalUploaded bypi194043
- C++ Const,Volatile Type QualifiersUploaded bypi194043
- polynomial approximation of a 2D signalUploaded bypi194043
- Integral Image for Computation of Mean And VarianceUploaded bypi194043
- Random Ferns for Patch DescriptionUploaded bypi194043
- Embedded Systems Programming with ARM on Linux - Blinking LEDUploaded bypi194043

- interphone-filaireUploaded byfinkape
- 7sd 522 presentation studiesUploaded byjacob john
- Questões Anac AVIUploaded bymarcelolimaspa
- IECEx_BKI07.0041--1--PX04.pdfUploaded byHoang
- Director of Sales or VP of Sales or National Sales Manager or DiUploaded byapi-77555912
- Circuitos Elc II (RA)Uploaded byVictoria Antezana Alvaro
- Transmission Lines and E.M. Waves Lec 13Uploaded byVishnu Shashank
- instrucciones (1).pdfUploaded byMovie Entertainment User
- Buck Converter Reference Design-TIUploaded byCata
- Kabel Nyy Supreme Lv Pvc CableUploaded byHerman Saputra
- ApuntesTeoremasUploaded byJair Sandoval
- Application Note_Power Analysis of PWM Motor Drives_55W-28942-0Uploaded bymapalpts
- Dft - Dtft - Ctft RelationsUploaded byahmd
- Ch17 Complete SetUploaded byAbhiroop Verma
- Catalogo CommaxUploaded byAngel Hernando Martinez
- OBJETIVO DE LA PRÁCTICAUploaded byRosarioMariaMateos
- Wp Implement h1 Field Devices SoftingUploaded bylenicito
- Maintenance Bypass Box for Parallel UPSs Installation & Operation GuideUploaded byDelta Electronics, Inc.
- Petronix d175510 - Rover v8Uploaded byTony Capuano
- Aei CoronaUploaded bysonaaxi
- Microcontroladores 4Uploaded byWilliam Yesid Rodriguez Muñoz
- manejo xilinxUploaded byj12
- 2008 NEC ChangesUploaded bylivespive
- Bombas de Lodo KSBUploaded byGustavo Higino
- Presentación trasmisor rosemountUploaded byRicardoCarreño
- Intro Elec Practico 2Uploaded byCarlos Barraza
- VEH MB TRANS 722.6 Transmission (ETC), Diagnosis Error CodesUploaded byd9d
- Deutsch VwgUploaded byandi
- Qb for UploadingUploaded byThiruvalar Selvan
- FT8 Hinson Tips for HF DXersUploaded byBoris Tuđan