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

3 ビュー (過去 30 日間)
Massimo Zanetti
Massimo Zanetti 2020 年 2 月 7 日
コメント済み: Massimo Zanetti 2020 年 2 月 7 日
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.

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by