1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 图像处理之灰度图转伪彩色图原理与代码分析

图像处理之灰度图转伪彩色图原理与代码分析

时间:2018-12-27 20:58:28

相关推荐

图像处理之灰度图转伪彩色图原理与代码分析

首先强调:在matlab中用[row,col]=size(x)获取的行和列是与图片编辑器显示的行列相反。

首先RGB图转为灰度图,通过rgb2gray()函数;灰度图中每个像素点的灰度值根据三个分段线性函数分别映射到R,G,B三个维度,再通过叠加生成伪彩色图。

三个分段线性函数图如下:

matlab程序如下:

​%% %题目:基于灰度变换的伪彩色方法%意义:将亮度低的映射为蓝色(冷色),亮度高的映射为红色(暖色)。%方法:分别用三个矩阵保存,三个通道的灰度值。每个通道的灰度值,有不同的映射函数。% 输入灰度级 输出彩色% 0~63 1/4 蓝色% 64~127 2/4 紫色% 128~191 3/4 黄色% 192~255 4/4红色%% clc;clear;grayImage=rgb2gray(imread('C:\Users\ch\Desktop\1_0°.bmp'));figure,imshow(grayImage);[row,col]=size(grayImage);range=255;%每个通道的最大灰度值R = zeros(row,col);G = zeros(row,col);B = zeros(row,col);%% for i=1:rowfor j=1:colif grayImage(i,j)<=range/4 % [0,64]偏蓝R(i,j)=0;G(i,j)=4*grayImage(i,j);B(i,j)=range;elseif grayImage(i,j)<=range/2 % (64,128] 偏紫R(i,j)=0;G(i,j)=range;B(i,j)=-4*grayImage(i,j)+2*range;elseif grayImage(i,j)<=3*range/4% (128, 192]R(i,j)=4*grayImage(i,j)-2*range;G(i,j)=range;B(i,j)=0;elseR(i,j)=range;G(i,j)=4*(range-grayImage(i,j));B(i,j)=0;endendend%%out = zeros(row,col);for i=1:rowfor j=1:colout(i,j,1)=R(i,j);out(i,j,2)=G(i,j);out(i,j,3)=B(i,j);endendout=out/256;figure,imshow(out);​

原图:

伪彩色图:

在此感谢:/jizhidexiaoming/article/details/80255383

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。