Programmatically generating over/under exposed pictures

3 Ansichten (letzte 30 Tage)
Deepti Ghadiyaram
Deepti Ghadiyaram am 29 Nov. 2016
Beantwortet: Kushagr Gupta am 19 Dez. 2016
Is there a simple way to introduce realistic over-exposure / under-exposure distortion in images? That is, synthetically over/under expose images such that the resulting distorted pictures are very close to what a camera would generate.
I could think of shifting the mean of the entire image in all three color channels. For example: if we consider a test image (I),
OE = I+75;
UE = I-50;
OE will be globally much brighter with certain regions white-washed. But this is a global operator. I am wondering if there is a way to locally introduce these distortions in the images, such that the distortion appears realistic. Is there something in MATLAB / Python that achieves this?

Antworten (1)

Kushagr Gupta
Kushagr Gupta am 19 Dez. 2016
There are various ways in which local exposure distortions can be introduced to an image.
One of the ways would be:
  1. Create a binary mask of the same size as the original image.
  2. Randomly choose size and location of patches (rectangular are the easiest, would just need to select the indexes in a matrix)
  3. Assign some value (say 75 for over exposed) and add the binary mask to the original image.
  4. This can be done in a loop and the randomness would help in creating different distortions for each image if need be.
In terms of code, taking an example, it would look like:
I=(imread('coins.png'))
Imask = zeros(size(I));
Imask = uint8(zeros(size(I)));
Imask(20:40,60:90)=75;
imshow(I+Imask)
This is just an illustrative example and should serve as a starting point.

Kategorien

Mehr zu Read, Write, and Modify Image finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by