双精度(64位)浮点数是默认的MATLAB®数字数据的表示。但是,为了减少处理图像所需的内存,可以使用numeric类将图像存储为8位或16位无符号整数uint8
要么UINT16
,分别。数据矩阵具有类的图像uint8
称为8位图像;数据矩阵具有类的图像UINT16
被称为16位图像。
的图像
功能可以显示8位或16位的图像直接不转换为双精度。然而,图像
当图像矩阵是解释矩阵值略有不同uint8
要么UINT16
。具体的解释取决于图像类型。
如果X
是uint8
要么UINT16
,它的值在用作颜色映射索引之前偏移1。值0指向colormap的第一行,值1指向第二行,依此类推。的图像
命令自动提供适当的偏移量,因此显示方法是否相同X
是双
,uint8
,或UINT16
:
图像(X);colormap(地图);
的颜色映射索引偏移量uint8
和UINT16
数据是为了支持标准图形文件格式,其典型地万博1manbetx在索引形式的图像数据存储与256项颜色表。偏移允许您操作和使用这种形式的显示图像中的多个存储器高效uint8
和UINT16
数组。
由于偏移量,必须加上1才能转换auint8
要么UINT16
索引图像双
。例如:
X64 =双(X8) + 1;或者X64 =双(X16) + 1;
反过来,用减1来转换a双
索引图像uint8
要么UINT16
:
X8 = uint8(X64 - 1);或X16 = uint16(X64 - 1);
范围双
图像阵列通常为[0,1],但8位强度的图像的范围通常为[0,255]和16位的强度的图像的范围通常为[0,65535]。使用下面的命令与灰度颜色表,以显示一个8位强度图像:
于imagesc(I,[0 255]);颜色表(灰色);
要转换的强度图像从双
来UINT16
首先乘以65535:
I16 = uint16(圆(I64 * 65535));
相反地,除以65535转换后UINT16
强度图像双
:
I64 = (I16) / 65535年翻一番;
一个8位的RGB图像的颜色分量是在范围[0,255]的整数,而不是在[0,1]的范围内的浮点值。的像素,其颜色分量是(255,255,255)显示为白色。的图像
命令正确地显示一个RGB图像,不管它的类是双
,uint8
,或UINT16
:
图像(RGB);
转换一个RGB图像双
来uint8
,先乘以255:
RGB8 = uint8(圆(RGB64 * 255));
相反地,除以255转换后uint8
RGB图像双
:
RGB64 = (RGB8) / 255年翻一番
转换一个RGB图像双
来UINT16
首先乘以65535:
RGB16 = uint16(圆(RGB64 * 65535));
相反地,除以65535转换后UINT16
RGB图像双
:
RGB64 = (RGB16) / 65535年翻一番;
要使用以下功能的MATLAB与uint8
和UINT16
数据,首先将数据转换为类型双
:
例如,如果X
是一个uint8
图像,铸的数据类型双
:
fft(双(X))
在这些情况下,输出总是双
。
的总和
函数返回的结果与其输入的结果类型相同,但是提供了一个对计算使用双精度的选项。
看到整型类算术运算关于数学函数如何与数据类型不属于双打工作的更多信息。
大多数图像处理工具箱™功能接受uint8
和UINT16
输入。如果你打算做复杂的图像处理上印尼
T8或UINT16
数据,请考虑将该工具箱包含在MATLAB计算环境中。
您可以执行其他几个操作uint8
和UINT16
阵列,包括:
您可以对整数数据执行算术操作,这使您能够在不首先转换图像数据的数值类的情况下转换图像类型。
本实施例中读取的8位RGB图像转换为MATLAB变量并将其转换为灰度图像:
rgb_img = imread(“ngc6543a.jpg”);%负荷图像图像(rgb_img)%显示的RGB图像轴形象;
此图像的支持下,太空望远镜科学研究所,由大学协会的天文研究公司,万博1manbetx从美国航空航天局合同NAs5-26555操作创建,转载来自AURA / STScI的许可。通过AURA / STScI提供所产生的图像的数字引渡可获得无版税。积分:J.P.哈灵顿和K.J.Orkowski(马里兰大学)和NASA。
根据NTSC标准,结合RGB值计算单色亮度。NTSC标准应用了与眼睛对RGB颜色的敏感性有关的系数:
我= .2989 * rgb_img(:,: 1)…+ .5870 * rgb_img(:: 2)……+ .1140 * rgb_img (:,:, 3);
我
是一个整数范围从最小值0的强度图像:
最小(I(:)) ans = 0
到最大的255:
MAX(I(:))ANS = 255
要显示图像,请使用具有256个值的灰度彩色映射。这样就不需要缩放数据到颜色的映射,如果使用不同大小的colormap,就需要缩放数据到颜色的映射。使用于imagesc
功能在颜色表不包含每个数据值一个条目的情况。
现在显示的图像在一个新的数字使用灰色色彩地图:
数字;颜色表(灰色(256));图像(I);轴形象;
其他颜色的地图,其颜色范围从暗到光连续变化,可以产生可用的图像。例如,试着colormap(夏天(256))
对于一个典型的示波器的外观。看到色彩表
对于更多的选择。
的照亮
功能使您可以增加或减少色彩图中的色彩强度,以补偿计算机显示差异,或增强图像中模糊或明亮区域的可见度(以牺牲范围的另一端为代价)。
这个表总结了如何根据图像类型和数据类将数据矩阵元素解释为像素颜色。
图像类型 |
双数据 |
UINT8或UINT16数据 |
---|---|---|
索引 |
图像是一个米-通过-n范围[1的整数数组,p]。 色彩图是p由范围内的浮点值[0,1]组成的-乘3数组。 |
图像是一个米-通过-n范围为[0的整数数组,p1]。 色彩图是p由范围内的浮点值[0,1]组成的-乘3数组。 |
强度 |
图像是一个米-通过-n一组浮点值,线性缩放以生成颜色映射索引。值的典型范围是[0,1]。 色彩图是p由范围[0,1]的浮点值组成的-乘3数组,通常是灰度值。 |
图像是一个米-通过-n阵列被线性缩放,以产生颜色表的索引的整数。值的典型范围是[0,255]或[0,65535]。 色彩图是p由范围[0,1]的浮点值组成的-乘3数组,通常是灰度值。 |
RGB(真彩) |
图像是一个米-通过-n由范围内的浮点值[0,1]组成的-乘3数组。 |
图像是一个米-通过-n范围为[0,255]或[0,65535]的整数的-乘3数组。 |