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

조회 수: 2 (최근 30일)
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?

채택된 답변

Walter Roberson
Walter Roberson 2022년 1월 20일
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.

추가 답변 (1개)

Matt J
Matt J 2022년 1월 20일
편집: Matt J 2022년 1월 20일
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
Gobert
Gobert 2022년 1월 21일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Image Filtering and Enhancement에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by