imadjust low_in high_in, why only in the range [0,1] ?

10 vues (au cours des 30 derniers jours)
Massimo Zanetti
Massimo Zanetti le 7 Fév 2020
Commenté : Massimo Zanetti le 7 Fév 2020
Hello, it looks a bit strange that the function imadjust accepts, other than single/double numeric types, also integer types, but actually one is forced to put low_in and high_in values only in the range [0,1]. It seems one forcedly have to convert its input image to double (so increasing a lot memory usage) to adjust an integer valued image.
Am I wrong?
Max

Réponses (1)

Walter Roberson
Walter Roberson le 7 Fév 2020
You have misunderstood. You do not need to change the input image datatype. What you are looking at is the contrast limit specification, and contrast is always a relative factor, from no contrast permitted (0) to comple contrast permitted (1)
  4 commentaires
Walter Roberson
Walter Roberson le 7 Fév 2020
J = imadjust( A , [600, 30000]/intmax(class(A)) , [0, 65535]/intmax(class(A)) );
Though you would probably use
J = imadjust(A, [600, 30000]/65535, [0 1]);
Massimo Zanetti
Massimo Zanetti le 7 Fév 2020
Thank you Walter.
I came up with the same. However, I think the documentation is misleading on how to use this function, simply because it is not true that values in I are mapped, if you have to scale them before mapping :)
Thanks again.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Computer Vision with Simulink dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by