uint8 to double is converting pixel values into decimal

14 次查看(过去 30 天)
when I convert my image which is in uint format to double the pixel matrix values are converting into decimal values
These are uint matrix of image
181 185 165 128 109 143 163 159 160 164 182 177 179 182 185 187 193 193
and these are double values of same image
0.709803921568628 0.725490196078431 0.647058823529412 0.501960784313726 0.427450980392157 0.560784313725490 0.639215686274510 0.623529411764706 0.627450980392157 0.643137254901961
why is this happening so? whats the solution

采纳的回答

Image Analyst
Image Analyst 2017-3-17
Basically it's dividing by 255 when you use im2double(). If you don't want that, then don't do it. If you want the floating point version but the values to be the same, use double() instead of im2double().
  6 个评论
Image Analyst
Image Analyst 2017-3-17
Why is it unanswered? Look:
grayImage = uint8([181 185 165 128 109 143 163 159 160 164 182 177 179 182 185 187 193 193])
dblGrayImage = double(grayImage)
whos dblGrayImage
Look in the command window and you'll see
grayImage =
1×18 uint8 row vector
181 185 165 128 109 143 163 159 160 164 182 177 179 182 185 187 193 193
dblGrayImage =
181 185 165 128 109 143 163 159 160 164 182 177 179 182 185 187 193 193
Name Size Bytes Class Attributes
dblGrayImage 1x18 144 double
You have a double array with the very same values as the uint8 version. I thought that's what you said you wanted? What more do you want?

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Convert Image Type 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by