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

7 ビュー (過去 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.

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

カテゴリ

Help Center および File ExchangeComputer Vision with Simulink についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by