converting floating point value to integer
显示 更早的评论
I have an image in floating point value,i have to convert it into integer ,can anyone suggest an idea please
I have values for example ,i have taken some pixels from my image,and my whole image pixels values in these ranges only,now i want to convert this floating point into an integer value and i want to read image from those intteger value pixels
0.0004 0.0004 0.0004 0.0003 0.0003 0.0002
0.0006 0.0005 0.0005 0.0005 0.0004 0.0003
0.0008 0.0007 0.0007 0.0007 0.0006 0.0005
6 个评论
Jan
2011-12-14
I've tried to answer, but this question misses an important point: What do you want as output exactly? The input seems to be a 16-bit grey-scale image. You can convert it to the type UINT8 or UINT16. You can scale it such that the smallest value of the input gets 0, or simply multiply all data by 2^8 or 2^16. You could spread the values, such that the complete range from 0 to 2^8-1 (or 2^16-1) is used.
Before I start to guess, what you want, or present a bunch of solutions, it is more efficient to let you specify your needs.
kash
2011-12-14
Jan
2011-12-14
@kash: Of ocurse uint8(0.0004) replies the same as uint8(0.0007). Simply try it in the command window.
Let me ask again: What is the range of the inputs and waht range do you want as output. Please be as specific as possible - guessing what you want wastes our and your time.
kash
2011-12-14
Jan
2011-12-14
And again: What is the range of the input (max value - min value) and what is the wanted range for the output?
kash
2011-12-14
采纳的回答
更多回答(1 个)
Jan
2011-12-14
A = [0.0004 0.0004 0.0004 0.0003 0.0003 0.0002;
0.0006 0.0005 0.0005 0.0005 0.0004 0.0003;
0.0008 0.0007 0.0007 0.0007 0.0006 0.0005];
B = uint8((A - min(A(:))) * (255 / (max(A(:) - min(A(:))))));
类别
在 帮助中心 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!