Is it possible to reconstruct an image from the number of pixel counts and bins information?

1 visualización (últimos 30 días)
Happy New Year and I need your help!
I have the following imhist function that yields the number of pixel counts and bin locations.
[counts,binLocations] = imhist(I)
Is it possible to reconstruct a "new" image using the number of "new pixel" counts and "same" bins information? If yes - can you please suggest how?

Respuesta aceptada

Walter Roberson
Walter Roberson el 20 de En. de 2022
I = imread('pout.tif');
imshow(I)
I1 = reshape(sort(I), size(I));
imshow(I1)
[c,b] = imhist(I);
[c1,b1] = imhist(I1);
all(c == c1)
ans = logical
1
all(b == b1)
ans = logical
1
Two different images, exactly the same counts and bin values.
It follows that knowing the counts and bin locations is not enough to recreate the image.

Más respuestas (1)

Matt J
Matt J el 20 de En. de 2022
Editada: Matt J el 20 de En. de 2022
As Walter has shown, it is not an invertible mapping, however, if you use histcounts() instead, there is enough information for a coarse inversion:
I = double(imread('pout.tif'));
[counts,binLocations,label]=histcounts(I(:),4);
vals=movmean(binLocations,2);
Irecon=reshape(vals(label), size(I)); %reconstructed
montage({I/255,Irecon/255})
  1 comentario
Gobert
Gobert el 21 de En. de 2022
Thanks, Matt J. I would also love to accept your answer - but I did not see the option to accept two constructive answers on this platform.

Iniciar sesión para comentar.

Categorías

Más información sobre Image Processing Toolbox en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by