Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Problem 667. Image Processing 01: Vignetting Correction

Created by Richard Zapor

The task is to correct image files for IR scanning sensors that due to errant tolerancing and structural instability have varying partially vignetted(V) images. Fortunately the V artifact is in a converging ray bundle and only the edges are impacted to differing amounts. Also, fortunately the sensor has a Low source flat field calibration target that can be used to determine the Nearfield(NF) for each image. The obscuration varies cross-scan but is constant for all samples. The NF varies with the structure temperature. To repair the optics in the drones is cost prohibitive. Fortuitously, the Image Processing is based on Matlab and needs only a fast function to perform an In-Scene image adjustment good enough for govt work.

Output: Fixed image(Fimg) (Array <= 512x512 of type double)

Input: Corrupted Image file(Cimg) (double); Low Signal NF_Cal (1xncol)

Tolerance: Good enough is 1%+1 count of Truth (Timg)

Assume Ideal LCal file where the center is a DC offset, not Vignetting.

LCal provides V Offset. Obscuration: Max is 25% at edge, Min 8 columns wide.

Corrupted Image creation: Start with Truth (Timg)

CImg = Timg(1-Obscuration)+ NF_Vignetting

example: Obs = [.25 .1 0...0 .1 .25]; NF_V [50 20 0...0 20 50];

load penny.mat; Timg=double(P);

Cimg=Timg.*repmat(1-Obs,128,1)+repmat(NF_V,128,1);

NF_Cal=NF_V+5;% NF_Cal [55 25 5 5...5 25 55]

Problem Group

Solution Statistics

5 correct solutions 5 incorrect solutions
Last solution submitted on Oct 29, 2013