exp function is returning zeros
이전 댓글 표시
Hi,
i am trying to compute a normal function for all pixels on the image ,
m = mean(I(:));
segma = std (I(:));
fb1=(exp(-abs((I(i)-m).^2)./2.*segma.^2))% Feature based1
fb2=(exp(-abs((I(j)-m).^2)./2.*segma.^2))% Feature based 2
it returns zeros,am i clculating the mean and the std in wrong way !!
Thanks
답변 (3개)
Steven Lord
2016년 4월 27일
Using Symbolic Math Toolbox, we can see what exp(-850) and exp(-950) would be, displayed to 20 digits.
>> vpa(exp(sym([-850; -950])), 20)
ans =
7.0744125465834323713e-370
2.6317352159005409842e-413
The smallest positive double precision number is not quite that small.
>> eps(0)
ans =
4.9407e-324
Star Strider
2016년 4월 27일
0 개 추천
Assuming that ‘I’ is single or double, and not uint8 (that would throw an error for std), the most likely possibility is that the exp argument is very large.
댓글 수: 2
sbei arafet
2016년 4월 27일
Star Strider
2016년 4월 27일
On my computer, the realmin function returns 2.225073858507201e-308, corresponding to exp(-708.396418532264). The exponential function of any value less than -708.396418532264 will return zero. (Even the Symbolic Math Toolbox with its extended resolution returns zero.)
fb1=exp(-(I(i)-m).^2./(2.*segma.^2))% Feature based1
fb2=exp(-(I(j)-m).^2./(2.*segma.^2))% Feature based 2
By the way: "segma" is "sigma".
Best wishes
Torsten.
카테고리
도움말 센터 및 File Exchange에서 Feature Detection and Extraction에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!