How to Implement an “imshow” function?

3 views (last 30 days)
How to Implement an “imshow” function by transforming the range [min, max] on the gray scale into the interval determined by 0 ≤ a, b ≤ 1? I need use variables and it should be suitable for any image not particular. Thank you!

Accepted Answer

Anna Nazarova
Anna Nazarova on 2 Dec 2018
The result should be like this. And if I use your code than the image not changingСнимок экрана 2018-12-02 в 2.01.45.png
  4 Comments
Rik
Rik on 2 Dec 2018
Of course the image is not changing: you have defined a and b is such a way that it will not change. The data type that most images will have when loaded is uint8. This has a minimum of 0 and a maximum of 255. If you want to change how the image looks, there are multiple methods:
  1. the method I showed you, where you will have to define a and b yourself, or use a=min(IM(:));b=max(IM(:));
  2. the method Walter suggested: use mat2gray(IM) (note that mat2gray(IM,[a b]) is equivalent to my method. mat2gray is in the image processing toolbox, but you appear to have that anyway.)
  3. the method Image Analist just suggested: don't change the data, but use the empty square brackets to display you image with a scaled color scheme by using imshow(IM,[])
Which of these you think is best for your situation is for you to decide.
Image Analyst
Image Analyst on 2 Dec 2018
I also suggested #2. And there is yet another way that might be useful. It's imadjust(). With imadjust(), you can specify a percentage of the way to come in on the tails of the histogram to determine the range. that way, outliers (like salt and pepper noise) will not prevent a nice picture from appearing.

Sign in to comment.

More Answers (3)

Image Analyst
Image Analyst on 2 Dec 2018
To display a gray scale image without changing the values of the array, but only changing the displayed values, do this:
imshow(grayImage, []);
To change the actual matrix, use mat2gray():
% Scale grayImage to between 0 and 1: min goes to 0, max goes to 1
grayImage = mat2gray(grayImage);
  5 Comments
Anna Nazarova
Anna Nazarova on 9 Dec 2018
Can you please send full code?

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!