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

7 次查看(过去 30 天)
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

回答(1 个)

Walter Roberson
Walter Roberson 2020-2-7
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 个评论
Walter Roberson
Walter Roberson 2020-2-7
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 2020-2-7
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Computer Vision with Simulink 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by