All result is integer instead double

Hello, Why all result after divide isn't double? Just zero or one :( Thanks
input = imread('cameraman.tif');
B = 2;
L = 256;
[m , n] = size(input);
output = zeros(m,n);
output = double(output);
min = min(input(:));
max = max(input(:));
for i = 1 : m
for j = 1 : n
Xmn = double(input(i,j));
output(i,j) = (Xmn - min )/(max - min);
end
end

댓글 수: 1

It is a REALLY, REALLY, REALLY bad idea to write lines like this:
min = min(input(:));
max = max(input(:));
Note that once you do that, the functions min and max will no longer work properly! So the second time you try to run that code, it will now fail.

댓글을 달려면 로그인하십시오.

답변 (1개)

Walter Roberson
Walter Roberson 2016년 4월 25일

0 개 추천

The variables you name "min" and "max" are the same data type as your input. If your input is uint8 then min and max are uint8. When you do an operation involving double and uint8, the result is always uint8.

카테고리

도움말 센터File Exchange에서 Encryption / Cryptography에 대해 자세히 알아보기

태그

질문:

2016년 4월 25일

답변:

2016년 4월 25일

Community Treasure Hunt

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

Start Hunting!

Translated by