stretching histogram of an image
조회 수: 31 (최근 30일)
이전 댓글 표시
I have an image attached with this message and its histogram is also attached. I want to stretch its histogram from 0-255 to 0-65535 and keeping the shape as it is. Please help in this regard.
Thanks in advance.
<<


>>
댓글 수: 0
답변 (1개)
Image Analyst
2016년 6월 26일
Simply multiplying the image by 256 will stretch the histogram.
image16 = uint16(image8) * uint16(256);
However, it will leave gaps of 256 between the bins. Is that what you want? If not, then you must cast to double and add noise in the range of 0-255 before scaling:
noiseImage = randsize(image8) - 0.5
image16 = uint16((double(image8) + noiseImage) * 256);
This would give a "solid" histogram with no gaps. The code is untested but I believe it should work.
댓글 수: 4
Thorsten
2016년 6월 27일
You cannot get additional information by stretching the histogram. It's just a different way to store the same data. Like if you have values 1 2 3, you cannot get any more detailed information from 10 20 30. And if you have a true 16 bit image, you need a monitor that can display 16 bit images without truncating them to 8 bit, to see a difference.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
