8位和16位图像
索引图像
双精度(64位)浮点数是默认的MATLAB®数值数据的表示。但是,为了减少处理图像的内存需求,可以使用数值类将图像存储为8位或16位无符号整数uint8
或uint16
,分别。一种图像,其数据矩阵有类uint8
称为8位图像;一种图像,其数据矩阵有类uint16
称为16位映像。
的图像
函数可以直接显示8位或16位图像,而无需将其转换为双倍精度。然而,图像
当图像矩阵为时,对矩阵值的解释略有不同uint8
或uint16
.具体的解释取决于图像类型。
如果X
是uint8
或uint16
时,其值在用作色图索引前偏移1。值0指向颜色映射的第一行,值1指向第二行,依此类推。的图像
命令自动提供适当的偏移量,因此显示方法是否相同X
是双
,uint8
,或uint16
:
图像(X);colormap(地图);
的色图索引偏移量uint8
而且uint16
Data旨在支持标准图形文件格式,该格式金宝app通常以索引形式存储具有256项颜色映射的图像数据。偏移量允许您使用内存效率更高的方式操作和显示此表单的图像uint8
而且uint16
数组。
由于偏移量,您必须添加1来转换auint8
或uint16
索引图像到双
.例如:
X64 = double(X8) + 1;或X64 = double(X16) + 1;
相反,减去1来转换a双
索引图像到uint8
或uint16
:
X8 = uint8(X64 - 1);或X16 = uint16(X64 - 1);
强度图像
的范围双
图像数组通常为[0,1],但8位强度图像的范围通常为[0,255],16位强度图像的范围通常为[0,65535]。使用以下命令显示带有灰度色图的8位强度图像:
显示亮度图像(I, 255年[0]);colormap(灰色);
将强度图像从双
来uint16
,首先乘以65535:
I16 = uint16(round(I64*65535));
相反,在转换a后除以65535uint16
强度图像到双
:
I64 = double(I16)/65535;
RGB图像
8位RGB图像的颜色分量是范围为[0,255]的整数,而不是范围为[0,1]的浮点值。颜色分量为(255,255,255)的像素显示为白色。的图像
命令正确显示RGB图像,无论它的类是双
,uint8
,或uint16
:
图像(RGB);
将RGB图像从双
来uint8
,先乘以255:
RGB8 = uint8(round(RGB64*255));
反之,转换a后除以255uint8
RGB图像双
:
RGB64 = double(RGB8)/255
将RGB图像从双
来uint16
,首先乘以65535:
RGB16 = uint16(round(RGB64*65535));
相反,在转换a后除以65535uint16
RGB图像双
:
RGB64 = double(RGB16)/65535;
数学运算支持uint8和uint16金宝app
使用下面的MATLAB函数uint8
而且uint16
数据,首先将数据转换为类型双
:
例如,如果X
是一个uint8
图像,将数据转换为类型双
:
fft(双(X))
在这些情况下,输出总是双
.
的总和
函数返回与其输入相同类型的结果,但提供了使用双精度进行计算的选项。
MATLAB整数数学
看到整数类的算术运算有关数学函数如何处理非双精度数据类型的详细信息。
大多数图像处理工具箱™功能接受uint8
而且uint16
输入。如果你打算做复杂的图像处理印尼
t8或uint16
数据,请考虑在MATLAB计算环境中包含该工具箱。
其他8位和16位阵列支持金宝app
您可以对uint8
而且uint16
数组,包括:
将8位RGB图像转换为灰度
可以对整数数据执行算术运算,这使您可以转换图像类型,而无需首先转换图像数据的数值类。
这个例子将一个8位RGB图像读入一个MATLAB变量,并将其转换为灰度图像:
Rgb_img = imread('ngc6543 .jpg');加载图像图像(rgb_img)显示RGB图像轴形象;
请注意
这张照片是在太空望远镜科学研究所的支持下创建的,由大学天文研究协金宝app会运营,根据NASA的NAs5-26555合同,并得到AURA/STScI的许可。AURA/STScI制作的图像的数字再现是免费的。致谢:j·p·哈林顿和k·j·奥科夫斯基(马里兰大学),以及美国宇航局。
根据NTSC标准,通过组合RGB值来计算单色亮度,该标准适用于与眼睛对RGB颜色的灵敏度相关的系数:
I = .2989*rgb_img(:,:,1)…+ .5870 * rgb_img(:: 2)……+ .1140 * rgb_img (:,:, 3);
我
是一个具有最小值为零的整数值的强度图像:
min(I(:)) ans = 0
最大长度为255。
max(I(:)) ans = 255
要显示图像,请使用带有256个值的灰度色图。这避免了缩放数据到颜色映射的需要,如果使用不同大小的颜色映射,则需要缩放数据到颜色映射。使用显示亮度图像
在颜色图不为每个数据值包含一个条目的情况下,使用函数。
现在使用灰色色图在一个新的图形中显示图像:
图;colormap(灰色(256));图像(I);轴形象;
相关信息
其他具有从暗到亮连续变化的颜色范围的颜色地图可以生成可用的图像。例如,试试colormap(夏天(256))
经典的示波器外观。看到colormap
更多选择。
的照亮
函数使您能够增加或减少颜色图中的颜色强度,以补偿计算机显示的差异,或增强图像中暗或亮区域的可见性(以牺牲范围的另一端为代价)。
图像类型和数字类摘要
这个表总结了数据矩阵元素是如何解释为像素颜色的,这取决于图像类型和数据类。
图像类型 |
双数据 |
uint8或uint16数据 |
---|---|---|
索引 |
图像是一个米——- - - - - -n范围为[1,p]。 Colormap是一个p-by-3范围为[0,1]的浮点值数组。 |
图像是一个米——- - - - - -n范围为[0,p1]。 Colormap是一个p-by-3范围为[0,1]的浮点值数组。 |
强度 |
图像是一个米——- - - - - -n浮点值数组,该数组通过线性缩放来生成颜色映射索引。典型的值范围是[0,1]。 Colormap是一个p由范围为[0,1]的浮点值组成的-by-3数组,通常为灰度。 |
图像是一个米——- - - - - -n线性缩放以产生颜色映射索引的整数数组。典型的取值范围是[0,255]或[0,65535]。 Colormap是一个p由范围为[0,1]的浮点值组成的-by-3数组,通常为灰度。 |
RGB(真彩) |
图像是一个米——- - - - - -n-by-3范围为[0,1]的浮点值数组。 |
图像是一个米——- - - - - -n-by-3范围为[0,255]或[0,65535]的整数数组。 |