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

조회 수: 4 (최근 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