uint8 to double is converting pixel values into decimal

조회 수: 4 (최근 30일)
akash bais
akash bais 2017년 3월 17일
댓글: akash bais 2017년 3월 18일
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?
akash bais
akash bais 2017년 3월 18일
okay got it, Thanks a lot sir :)

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

추가 답변 (0개)

태그

Community Treasure Hunt

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

Start Hunting!

Translated by