Integer乘法的结果不正确

时间:2017-03-01 07:21:18

标签: matlab uint

我读了一张DICOM图像,并提取了它的一些特征,如宽度和高度。 现在我想在变量中保存图像的总像素数。 这是代码:

info = dicominfo(filename);

width = info.Width;
height = info.Height;
colorType = info.ColorType;
format = info.Format;
size = info.FileSize;
numberOfPixels = width*height;
k = info.BitDepth;

这些是印刷品:

  Size: 256 x 256
  Color type: grayscale
  Format: DICOM
  Size: 137024 bytes
  NumberOfPixels: 65535

numberOfPixels值错误。为什么?

我认为这是一个演员问题所以我也尝试添加uint32(width*height)但是没有,我得到65535而不是65536。 为什么呢?

谢谢

1 个答案:

答案 0 :(得分:1)

你应该在乘以之前施放,例如uint32(width)*uint32(height)