Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image Matlab可以显示多少灰度级?_Image_Matlab_Image Processing - Fatal编程技术网

Image Matlab可以显示多少灰度级?

Image Matlab可以显示多少灰度级?,image,matlab,image-processing,Image,Matlab,Image Processing,假设我有一个矩阵图像的uint16 其中,基本上每个像素的范围为0到65535 如果我用imshow(image)显示此图像,Matlab将渲染多少灰度级 标准255级别(因此隐式地将图像转换为uint8)? (请注意,我知道我可以更改颜色贴图,但我只想知道灰度级别的数量)颜色贴图的大小告诉您Matlab试图显示多少颜色(或灰度) numGrayLevels = size(get(gcf,'Colormap'),1) 请注意,大多数监视器仅支持8位灰度。根据显示器的质量和校准,您可能会看到远低

假设我有一个矩阵
图像
uint16

其中,基本上每个像素的范围为
0
65535

如果我用
imshow(image)
显示此图像,Matlab将渲染多少灰度级

标准
255
级别(因此隐式地将图像转换为uint8)?

(请注意,我知道我可以更改颜色贴图,但我只想知道灰度级别的数量)

颜色贴图的大小告诉您Matlab试图显示多少颜色(或灰度)

numGrayLevels = size(get(gcf,'Colormap'),1)

请注意,大多数监视器仅支持8位灰度。根据显示器的质量和校准,您可能会看到远低于此值。

我认为Matlab没有任何限制。RGB和HSV颜色值也可以是双倍的-给你一个“近乎无限”的颜色数(和灰度)

绘图窗口是用Java完成的。在那里,颜色可以由四个浮点数定义(请参阅)-留下硬件无法处理的更多颜色

帮助各国:

渲染中使用的实际颜色取决于在特定输出设备可用的颜色空间中找到最佳匹配


因此,最终它似乎取决于您的硬件。

这可能是一个更复杂的答案。大多数计算机当前只能显示256种灰度


MATLAB不可能做得比这更好。但是,使用伪着色方案,您可以让MATLAB表示每像素16位的完整值,在这种情况下,它将显示您在色阶中选择的65535种颜色。

使用
imtool
可以轻松调整该范围。@link-您在哪里读到的,你引起了我的兴趣:-)即使实际的像素支持这一点,大多数驱动它们的图形芯片本身也只支持24位真彩色(只有256个灰度)。当我们看到32位时,通常(而且几乎总是)这意味着增加了一个alpha通道,而不是更多的颜色)。@llnk-对不起,刚刚注意到一个问号:-)我非常确定它不支持大于256的灰度。到目前为止,我还没有看到这方面的证据。一些廉价的LCD屏幕甚至可能没有8位。指定一个更高深度的颜色贴图应该不会有什么坏处,除了它占用更多内存和需要更多处理之外。除非在高度专业化的显示器(例如放射科医生使用的显示器)上使用Matlab,否则它可能不会产生影响。我想它可能与一些写得不好的函数不兼容。@horchler-我认为从物理上讲,重要的是要注意,人眼确实没有能力比任何一种颜色元素的256种色调更好地分辨。我们对绿色最敏感,即使是那个,256也超出了我们眼睛的能力。这就是为什么系统被设计成今天的样子。从这里你会看到默认情况下Matlab中的颜色映射只使用64种颜色,而不是256种颜色(不要问我为什么2014年仍然如此)。要获得更平滑的颜色渐变,您可以通过
map=colormap(gray(256)),手动设置colormap