matlab 16位图转8位,8 位和 16 位图像

将 8 位 RGB 图像转换为灰度图像

您可以对整型数据执行数学运算,这样可以直接转换图像类型,而无需先转换图像数据的数值类。

此示例将一个 8 位 RGB 图像读入 MATLAB 变量,并将其转换为灰度图像:

rgb_img = imread('ngc6543a.jpg'); % Load the imageimage(rgb_img) % Display the RGB image

axis image;

7cc063137195ab09d5281ddc005363a8.png

注意

该图像是在太空望远镜科学研究所(由大学天文研究联合组织管理)支持下根据 NASA 合同 NAs5-26555 创建的,并得到 AURA/STScI 的复制许可。使用者可以免版权费获得由 AURA/ STScI 制作的图像的数字版本。感谢:J.P. Harrington 和 K.J. Orkowski(马里兰大学)以及 NASA。

基于 NTSC 标准合并 RGB 值,以此方式来计算单色亮度,这会将与眼睛敏感度相关的系数应用到 RGB 颜色:

I = .2989*rgb_img(:,:,1)...

+.5870*rgb_img(:,:,2)...

+.1140*rgb_img(:,:,3);

I 是具有整数值的强度图像,整数值范围从最小值零开始:

min(I(:))

ans =

0

到最大值 255:

max(I(:))

ans =

255

要显示图像,请使用 256 值的灰度颜色图。这样可以避免调整数据到颜色的映射,当使用不同尺寸的颜色图时通常需要进行此项调整。如果颜色图未包含每个数据值的项,则需使用 imagesc 函数。

现在使用灰度颜色图在新图窗中显示图像:

figure; colormap(gray(256)); image(I);

axis image;

ba555787e75d7b87946be7ab5a07dd5d.png相关信息

其他的颜色范围从深色到浅色连续变化的颜色图也可生成可用的图像。例如,使用 colormap(summer(256)) 生成经典的示波器样式。有关更多选项,请参阅 colormap。

brighten 函数可以让您增加或减少颜色图中的强度以补偿电脑显示差异或增强图像中模糊或明亮区域的可见性(其代价是另一端的颜色会有损失)。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值