matlab各种灰度变换怎么实现以及观察

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab各种灰度变换怎么实现以及观察相关的知识,希望对你有一定的参考价值。

这个好办。首先读入你的图像。假设你的图像在matlab的当前工作目录,名字为A.tif.(这里我要强调下:因为我不知道你所谓的灰度图像是什么意思。后缀名是什么。但是我要说不是说你看到它是黑白图像他就是灰度图像。是不是灰度图像要从图像格式也就是后缀名来确定。bmp是彩色图像,但是它也可以是黑白的!!) 所以如果你的图像的后缀名是bmp或者jpg或者jpeg之类的,你就不用继续了。图像是黑白的,它就没有彩色信息!你是还原不出来的!巧妇难为无米之炊!
但是如果你的图像后缀名是tif之类的单色图像。那可以把它转化为bmp。jpg等格式的。但是一样无法编程彩色的。即使要彩色也是一种伪彩色。
你还需要继续吗???能做的就是帮你做格式转换,彩色信息不会凭空出来。其实格式转换压根也不一定要用matlab。很多看图小软件都可以完成。
参考技术A I = rgb2gray(RGB);
Matlab函数rgb2gray,函数功能:将真彩色图像转换为灰度图像。在matlab命令窗口中键入doc rgb2gray或help rgb2gray可以获得更多关于该函数的帮助信息。
调用方式:

I = rgb2gray(RGB)
将真彩色RGB图像转换成灰度图像。(RGB并不发生变化)
newmap = rgb2gray(map)
返回一个灰度调色板。
以下是这个函数的实例:

% 1. 显示RGB真彩色图像
imgrgb = imread('flower.jpg');
figure('Name', '显示真彩色图像')
imshow(imgrgb)
% 2. 显示灰度图像
imggray = rgb2gray(imgrgb);
figure('Name', '显示灰度图像')
imshow(imggray)

数字图像处理Matlab实现-图像增强-彩色图像增强(彩虹编码,热金属编码)

伪彩色处理

伪彩色增强:把一幅黑白域图像的不同灰度级映射为一幅彩色图像的技术手段。

伪彩色增强有很多种方法,而下面的增强方法则是使用的空间域灰度级-彩色变换法。

空间域灰度级-彩色变换法:可以将灰度图像变为具有多种颜色渐变的连续彩色图像,变换后的图像视觉效果较好,主要色相是将灰度图像f(x,y)送入具有不同变换性质的红、绿、蓝3个变换器,相对应的产生3个不同的输入fR(x,y),fG(x,y),fB(x,y)将它们对应地作为彩色图像的红绿蓝三个色彩分量合成一副彩色图像。

彩虹编码和热金属编码是其中的两种变化函数。

彩虹编码

`Image1=imread(\'lotus.bmp\');

%转换为灰度
gray=rgb2gray(Image1);
[h,w]=size(gray);
%新图像的矩阵
NewImage3=zeros(h,w,3);
for x=1:h
for y=1:w
if gray(x,y)<96
NewImage3(x,y,1)=0;
elseif gray(x,y)<128
NewImage3(x,y,1)=255(gray(x,y)-96)/32;
else
NewImage3(x,y,1)=255;
end
end
end
for x=1:h
for y=1:w
if gray(x,y)<32
NewImage3(x,y,2)=0;
elseif gray(x,y)<64
NewImage3(x,y,2)=255
(gray(x,y)-32)/32;
elseif gray(x,y)<128
NewImage3(x,y,2)=255;
elseif gray(x,y)<192
NewImage3(x,y,2)=255(192-gray(x,y))/64;
else
NewImage3(x,y,2)=255
(gray(x,y)-192)/64;
end
end
end
for x=1:h
for y=1:w
if gray(x,y)<32
NewImage3(x,y,3)=255gray(x,y)/32;
elseif gray(x,y)<64
NewImage3(x,y,3)=255;
elseif gray(x,y)<96
NewImage3(x,y,3)=255
(96-gray(x,y))/32;
elseif gray(x,y)<192
NewImage3(x,y,3)=0;
else
NewImage3(x,y,3)=255*(gray(x,y)-192)/64;
end
end
end
imshow(NewImage3),title(\'彩虹编码\')
`
处理结果
处理结果

热金属编码

`Image1=imread(\'lotus.bmp\');

%转换为灰度
gray=rgb2gray(Image1);
[h,w]=size(gray);
%新图像的矩阵
NewImage4=zeros(h,w,3);
for x=1:h
for y=1:w
if gray(x,y)<64
NewImage4(x,y,1)=0;
elseif gray(x,y)<128
NewImage4(x,y,1)=255(gray(x,y)-64)/64;
else
NewImage4(x,y,1)=255;
end
end
end
for x=1:h
for y=1:w
if gray(x,y)<128
NewImage4(x,y,2)=0;
elseif gray(x,y)<192
NewImage4(x,y,2)=255
(gray(x,y)-128)/64;
else
NewImage4(x,y,2)=255;
end
end
end
for x=1:h
for y=1:w
if gray(x,y)<64
NewImage4(x,y,3)=255gray(x,y)/64;
elseif gray(x,y)<96
NewImage4(x,y,3)=255;
elseif gray(x,y)<128
NewImage4(x,y,3)=255
(128-gray(x,y))/32;
elseif gray(x,y)<192
NewImage4(x,y,3)=0;
else
NewImage4(x,y,3)=255*(gray(x,y)-192)/64;
end
end
end
imshow(NewImage4),title(\'热金属编码\')
`
处理结果
处理结果
————————————————
版权声明:本文为CSDN博主「SKY_FISHSKY_FISH」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/SUMMER_RAINOW/article/details/115773441

以上是关于matlab各种灰度变换怎么实现以及观察的主要内容,如果未能解决你的问题,请参考以下文章

数字图像处理:图像的灰度变换(Matlab实现)

数字图像处理的Matlab实现—灰度变换与空间滤波

图像处理Matlab2 灰度变换 imadjust stretchlim

数字图像处理Matlab实现-图像增强-彩色图像增强(彩虹编码,热金属编码)

数字图像处理中,灰度的指数变换和对数变换分别有啥有

python图像数组操作与灰度变换