最新matlab图像类型与彩色模型的转换
(整理)matlab图像类型与彩色模型的转换.
第六讲图像类型与彩色模型的转换【目录】一、图像类型的转换 (1)1、真彩图像→索引图像 (3)2、索引图像→真彩图像 (3)3、真彩图像→灰度图像 (4)4、真彩图像→二值图像 (4)5、索引图像→灰度图像 (5)6、灰度图像→索引图像 (6)7、灰度图像→二值图像 (7)8、索引图像→二值图像 (8)9、数据矩阵→灰度图像 (9)二、彩色模型的转换 (9)1、图像的彩色模型 (10)2、彩色转换函数 (10)三、纹理映射 (13)【正文】一、图像类型的转换1、真彩图像→索引图像【格式】X =d i t h e r (R G B ,m a p )【说明】按指定的颜色表m a p 通过颜色抖动实现转换 【输入】R G B 可以是d o u b l e 或u i n t 8类型【输出】X 超过256色则为d o u b l e 类型,否则输出为u i n t 8型【例】C L F ,R G B =i m r e a d ('f l o w e r s .t i f '); 1002003004005005010015020025030035010020030040050050100150200250300350【输出】R G B 为d o u b l e 类型【例】C L F ,l o a d t r e e s ; R G B =i n d 2r g b (X ,m a p );s u b p l o t (1,2,1);s u b i m a g e (X ,m a p );t i t l e ('索引图') s u b p l o t (1,2,2);s u b i m a g e (R G B );t i t l e ('真彩图')1002003005010015020025010020030050100150200250真彩图像→灰度图像【例】1002003004005005010015020025030035010020030040050050100150200250300350真彩图像→二值图像【输出】B W 为u i n t 8型【例】C L F ,R G B =i m r e a d ('f l o w e r s .t i f ');1002003004005005010015020025030035010020030040050050100150200250300350索引图像→灰度图像【输入】X 可以是d o u b l e 或u i n t 8类型,m a p 为d o u b l e 类型 【输出】I 是d o u b l e 类型,N e w m a p 为d o u b l e 类型【例】C L F ,l o a d t r e e s ; I =i n d 2g r a y (X ,m a p ); N e w m a p =r g b 2g r a y (m a p );s u b p l o t (2,2,1);s u b i m a g e (X ,m a p );t i t l e ('索引图') s u b p l o t (2,2,3);s u b i m a g e (I );t i t l e ('格式1灰度图')s u b p l o t (2,2,4);s u b i m a g e (X ,N e w m a p );t i t l e ('格式2灰度图')100200300501001502002501002003005010015020025010020030050100150200250灰度图像→索引图像【格式1】1、[X ,m a p ]=g r a y 2i n d (I ,n )2、X =g r a y s l i c e (I ,n )3、X =g r a y s l i c e (I ,v )【说明】格式1:将灰度图像转换为灰度级为n 的索引图像X ,n 的默认值为64;格式2:将灰度图像I 均匀量化为n 个等级,然后转换为伪彩色图像X ;格式3:按指定的阈值矢量v (其中每个元素在0和1之间)对图像I 进行阈值划分,然后转换成索引图像【输入】I 可以是d o u b l e 类型、u i n t 8类型和u i n t 16类型【输出】m a p 的行不大于256,则X 为u i n t 类型,否则为d o u b l e 类型【例】C L F ,I =i m r e a d ('r i c e .t i f '); [X 1,m a p 1]=g r a y 2i n d (I ,16);X 2=g r a y s l i c e (I ,8);X 3=g r a y s l i c e (I ,255*[0 0.21 0.23 0.26 0.30 0.35 0.6 1.0]'); s u b p l o t (2,2,1);s u b i m a g e (I );t i t l e ('灰度图')s u b p l o t (2,2,2);s u b i m a g e (X 1,m a p 1);t i t l e ('16灰度级图') s u b p l o t (2,2,3);s u b i m a g e (X 2,h o t (8));t i t l e ('均匀量化图') 501001502002505010015020025016灰度级图5010015020025050100150200250均匀量化图5010015020025050100150200250非均匀量化图5010015020025050100150200250度图像→二值图像【格式一】B W =d i t h e r (I );【格式一】B W =i m 2b w (I ,l e v e l ) 【说明】格式一用抖动的方式实现转换,格式二用阈值方式转换 【输入】I 可以是d o u b l e 类型和u i n t 8类型 【输出】B W 为u i n t 8类型【例】C L F ,I =i m r e a d ('s a t u r n .t i f '); B W 1=d i t h e r (I ); B W 2=i m 2b w (I ,0.5);s u b p l o t (2,2,1);s u b i m a g e (I );t i t l e ('灰度图') s u b p l o t (2,2,3);s u b i m a g e (B W 1);t i t l e ('抖动二值化') 10020030040050100150200250300抖动二值化1002003004005010015020025030010020030040050100150200250300索引图像→二值图像【格式】B W =i m 2b w (X ,m a p ,l e v e l )【输入】X 可以是d o u b l e 类型和u i n t 8类型 【输出】B W 为u i n t 8类型【例】C L F ,l o a d t r e e s ; B W =i m 2b w (X ,m a p ,0.5);s u b p l o t (1,2,1);s u b i m a g e (X ,m a p );t i t l e ('索引图') s u b p l o t (1,2,2);s u b i m a g e (B W );t i t l e ('二值图')1002003005010015020025010020030050100150200250数据矩阵→灰度图像如不指定区间,自动取最大区间。
matlab《数字图像处理》第4章-图像类型与彩色模型的转换--附要点
MATLAB《数字图像处理》第4章——图像类型与彩色模型的转换一、图像类型在 MATLAB 中,图像可以分为灰度图像和彩色图像两种。
1. 灰度图像灰度图像是一种内部只有亮度信息,没有色度信息的图像。
在 MATLAB 中,灰度图像的存储方式为二维矩阵,每个像素点的值表示该点的亮度值。
在图像处理中,灰度图像常用来表达物体的边缘、轮廓等特征。
2. 彩色图像彩色图像是一种包含了颜色信息的图像。
在 MATLAB 中,彩色图像的存储方式为三维矩阵,每个像素点由 RGB 三个通道的值组成。
其中,R、G、B 通道分别存储该像素点在红、绿、蓝三个颜色分量上的亮度值。
彩色图像通常用来表达物体的色彩信息。
二、彩色模型的转换在图像处理中,有时需要将图像从一种彩色模型转换为另一种,以达到特定的效果。
在 MATLAB 中,常用的彩色模型有 RGB、HSV、YCbCr 等。
1. RGB 到 HSV 的转换RGB 到 HSV 的转换通常用于调整图像的色调、饱和度和明度等参数。
在MATLAB 中,可以使用rgb2hsv函数进行转换,示例代码如下:rgb = imread('image.jpg');hsv = rgb2hsv(rgb);2. HSV 到 RGB 的转换HSV 到 RGB 的转换通常用于根据指定的色调、饱和度和明度等参数生成彩色图像。
在 MATLAB 中,可以使用hsv2rgb函数进行转换,示例代码如下:hsv = imread('image.jpg');rgb = hsv2rgb(hsv);3. RGB 到 YCbCr 的转换RGB 到 YCbCr 的转换通常用于数字视频、数字电视等领域。
在 MATLAB 中,可以使用rgb2ycbcr函数进行转换,示例代码如下:rgb = imread('image.jpg');ycbcr = rgb2ycbcr(rgb);4. YCbCr 到 RGB 的转换YCbCr 到 RGB 的转换通常用于数字视频、数字电视等领域。
(整理)MATLAB图像显示与格式转换.
第五讲M A T L A B可视化(三)图像显示M a t l a b进行图像处理的步骤如下:↓↓↓↓【目录】一、图像文件格式 (2)1、调色板 (2)2、图像类型 (2)3、图像文件格式 (3)二、读图像和图像信息 (3)1、读取图像 (3)2、读取图像信息 (4)三、图像类别与数据格式 (6)四、图像显示 (8)1、i m s h o w(I,n) (8)2、i m s h o w(I,[l o w,h i g h]) (9)3、i m s h o w(B W) (10)4、i m s h o w(X,M A P) (14)5、i m s h o w(R G B) (15)6、i m s h o w f i l e n a m e (16)7、s u b i m a g e (17)五、保存图像 (18)1、i m w r i t e函数 (18)六、图像数据格式转换 (18)1、索引图像 (19)2、灰度图像 (19)3、真彩色图像 (19)4、二值图像 (20)【正文】一、图像文件格式1、调色板调色板是包含不同颜色的颜色表,每种颜色以红、绿、蓝三种颜色的组合来表示,图像的每一个像素对应一个数字,而该数字对应调色板中的一种颜色。
调色板的单元个数是与图像的颜色数相对应的,256色图像的调色板就有256个单元。
真彩图像的每个像素直接用R、G、B三个字节来表示颜色,因此不需要调色板。
2、图像类型3、图像文件格式二、读图像和图像信息1、读取图像函数i m r e a d可以从任何M a t l a b支持的图像文件格式中,以任意位深度读取一幅图像。
格式为:[X,M A P]=i m r e a d(F I L E N A M E,'F M T'),其中:F I L E N A M E-为需要读入的图像文件名称,F M T-为图像格式。
【例】图像读取演示[X1,M A P1]=i m r e a d('演示图像-1位黑白.t i f');[X2,M A P2]=i m r e a d('演示图像-8位灰度.t i f');[X3,M A P3]=i m r e a d('演示图像-256色.t i f');[X4,M A P4]=i m r e a d('演示图像-16位灰度.t i f');[X5,M A P5]=i m r e a d('演示图像-24位色.t i f');[X6,M A P6]=i m r e a d('演示图像-48位色.t i f');w h o sN a m e S i z e B y t e s C l a s sM A P10x00d o u b l e a r r a yM A P20x00d o u b l e a r r a yM A P3256x36144d o u b l e a r r a yM A P40x00d o u b l e a r r a yM A P50x00d o u b l e a r r a yM A P60x00d o u b l e a r r a yX1427x427182329l o g i c a l a r r a yX2427x427182329u i n t8a r r a yX3427x427182329u i n t8a r r a yX4427x427364658u i n t16a r r a yX5427x427x3546987u i n t8a r r a yX6427x427x31093974u i n t16a r r a yG r a n d t o t a l i s1824058e l e m e n t s u s i n g2558750b y t e s2、读取图像信息可以通过调用i m f i n f o函数获得与图像文件有关的信息,格式如下:I N F O=i m f i n f o(F I L E N A M E,'F M T')其中:返回的I N F O是M a t l a b的一个结构体。
MATLAB图像类型转换
MATLAB图像类型转换3. MATLAB图像类型转换图像类型转换函数---------------------------------------------------------------------------函数名函数功能--------------------------------------------------------------------------- dither 图像抖动,将灰度图变成二值图,或将真彩色图像抖动成索引色图像 gray2ind 将灰度图像转换成索引图像grayslice 通过设定阈值将灰度图像转换成索引色图像im2bw 通过设定亮度阈值将真彩色、索引色、灰度图转换成二值图 ind2gray 将索引色图像转换成灰度图像ind2rgb 将索引色图像转换成真彩色图像mat2gray 将一个数据矩阵转换成一副灰度图 rgb2gray 将一副真彩色图像转换成灰度图像 rgb2ind 将真彩色图像转换成索引色图像----------------------------------------------------------------------------4. 图像文件的读写和查询4.1 图形图像文件的读取利用函数imread()可完成图形图像文件的读取,语法:A=imread(filename,fmt) [X,map]=imread(filename,fmt) [...]=imread(filename) [...]=imread(filename,idx) (只对TIF格式的文件)[...]=imread(filename,ref) (只对HDF格式的文件)通常,读取的大多数图像均为8bit,当这些图像加载到内存中时,Matlab就将其存放在类uint8中。
此为Matlab还支持16bit的PNG 和TIF图像,当读取这类文件时,Matlab就将其存贮在uint16中。
matlab 图像的几何变换与彩色处理
实验四、图像的几何变换与彩色处理一、实验目的1理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;2熟悉图像几何变换的MATLAB操作和基本功能3 掌握彩色图像处理的基本技术二、实验步骤1 启动MATLAB程序,读入图像并对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作%%%%%%平移>> flowerImg=imread('flower.jpg');>> se=translate(strel(1),[100 100]);>> img2=imdilate(flowerImg,se);>> subplot(1,2,1);>> imshow(flowerImg);>> subplot(1,2,2);>> imshow(img2);I1=imread('flower.jpg');I1=double(I1);H=size(I1);I2(1:H(1),1:H(2),1:H(3))=I1(H(1):-1:1,1:H(2),1:H(3)); I3(1:H(1),1:H(2),1:H(3))=I1(1:H(1),H(2):-1:1,1:H(3)); Subplot(2,2,1);Imshow(uint8(I1));Title('原图');Subplot(2,2,2);Imshow(uint8(I3));Title('水平镜像');Subplot(2,2,3);Imshow(uint8(I2));Title('垂直镜像');img1=imread('flower.jpg');figure,imshow(img1);%%%%%%缩放img2=imresize(img1,0.25);figure,imshow(img2);imwrite(img2,'a2.jpg');%%%%%%旋转img3=imrotate(img1,90); figure,imshow(img3); imwrite(img3,'a3.jpg');2 实验如下操作:(1)改变图像缩放比例f= imread('flower.jpg');T=[ 0.5 0 0; 0 0.5 0; 0 0 1];tform=maketform('affine',T);[g1,xdata1,ydata1]=imtransform(f,tform,'FillValue',255);T=[ 1 0 0; 0 1 0; 0 0 1];tform=maketform('affine',T);[g2,xdata2,ydata2]=imtransform(f,tform,'FillValue',255);T=[ 1.5 0 0; 0 1.5 0; 0 0 1];tform=maketform('affine',T);[g3,xdata3,ydata3]=imtransform(f,tform,'FillValue',255);hold onimshow(g3,'XData', xdata3, 'YData', ydata3)hold onimshow(g2,'XData', xdata2, 'YData', ydata2)hold onimshow(g1,'XData', xdata1, 'YData', ydata1)axis autoaxis on(2)改变图像的旋转角度,f= imread('flower.jpg');theta=3*pi/4;T=[cos(theta) sin(theta) 0; -sin(theta) cos(theta) 0; 0 0 1]; tform=maketform('affine',T);[g3,xdata3,ydata3]=imtransform(f,tform,'FillValue',255); theta=pi;T=[cos(theta) sin(theta) 0; -sin(theta) cos(theta) 0; 0 0 1]; tform=maketform('affine',T);[g4,xdata4,ydata4]=imtransform(f,tform,'FillValue',255); imshow(f);hold onimshow(g3,'XData', xdata3, 'YData', ydata3)hold onimshow(g4,'XData', xdata4, 'YData', ydata4)axis autoaxis on观察变换结果,要求把经过不同类型几何变换的图像和原图像在同一坐标系内显示输出(请参考课件或教材上的代码)3 读入一幅彩色图像,进行如下图像处理:(1)在RGB彩色空间中对图像进行模糊和锐化处理rgb= imread('flower.jpg');figure; imshow(rgb); title('原图');%平滑滤波r=rgb(:,:,1);g=rgb(:,:,2);b=rgb(:,:,3);m=fspecial('average',[8,8]);r_filtered=imfilter(r,m);g_filtered=imfilter(g,m);b_filtered=imfilter(b,m);rgb_filtered=cat(3,r_filtered,g_filtered,b_filtered);figure; imshow(rgb_filtered); title('模糊后');imwrite(rgb_filtered, 'RGB彩色空间模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(rgb,lapMatrix,'replicate');i_sharped=imsubtract(rgb,i_tmp);figure; imshow(i_sharped); title('锐化后'); imwrite(i_sharped, 'RGB彩色空间锐化后.jpg');(2)在HSI彩色空间中,对H分量图像进行模糊和锐化处理,转换回RGB格式并观察效果(3)在HSI彩色空间中,对S分量图像进行模糊和锐化处理,转换回RGB格式并观察效果(4)在HSI彩色空间中,对I分量图像进行模糊和锐化处理,转换回RGB格式并观察效果fc = imread('flower.jpg');h = rgb2hsi(fc);H = h (:,:,1);S = h (:,:,2);I = h (:,:,3);subplot(3,3,1);imshow(fc); title('原图');%平滑滤波m=fspecial('average',[8,8]);h_filtered=imfilter(H,m);img_h_filtered = cat(3,h_filtered,S,I);rgb_h_filtered = hsi2rgb(img_h_filtered);subplot(3,3,2);imshow(rgb_h_filtered); title('H分量模糊后');imwrite(rgb_h_filtered, 'H分量模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(H,lapMatrix,'replicate');H_sharped=imsubtract(H,i_tmp);img_h_sharped = cat(3,H_sharped,S,I);rgb_h_sharped = hsi2rgb(img_h_sharped);subplot(3,3,3); imshow(rgb_h_sharped); title('H分量锐化后'); imwrite(rgb_h_sharped, 'H分量锐化后.jpg');subplot(3,3,4);imshow(fc); title('原图');%平滑滤波m=fspecial('average',[8,8]);s_filtered=imfilter(S,m);img_s_filtered = cat(3,H,s_filtered,I);rgb_s_filtered = hsi2rgb(img_s_filtered);subplot(3,3,5);imshow(rgb_s_filtered); title('S分量模糊后'); imwrite(rgb_s_filtered, 'S分量模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(S,lapMatrix,'replicate');s_sharped=imsubtract(S,i_tmp);img_s_sharped = cat(3,H,s_sharped,I);rgb_s_sharped = hsi2rgb(img_s_sharped);subplot(3,3,6); imshow(rgb_s_sharped); title('S分量锐化后'); imwrite(rgb_s_sharped, 'S分量锐化后.jpg');subplot(3,3,7);imshow(fc); title('原图');%平滑滤波m=fspecial('average',[8,8]);i_filtered=imfilter(I,m);img_i_filtered = cat(3,H,S,i_filtered);rgb_i_filtered = hsi2rgb(img_i_filtered);subplot(3,3,8);imshow(rgb_i_filtered); title('I分量模糊后'); imwrite(rgb_i_filtered, 'I分量模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(I,lapMatrix,'replicate');i_sharped=imsubtract(I,i_tmp);img_i_sharped = cat(3,H,S,i_sharped);rgb_i_sharped = hsi2rgb(img_i_sharped);subplot(3,3,9); imshow(rgb_i_sharped); title('I分量锐化后'); imwrite(rgb_i_sharped, 'I分量锐化后.jpg');由图看出I分量图像进行模糊和锐化处理的效果最好。
Matlab读取16进制RGB文档转化为彩色图像
读取16进制RGB文档转化为彩色图像一.Matlab程序代码如下所示:RGB=imread('White.bmp');//White.bmp是一幅1080*1920的空图像。
red=zeros(1080,1920);//建立一个二维数组red用来保存R的值。
a=textread('r.txt','%s')';//读取16进制的r.txt文件中的数据放到a中。
b=hex2dec(a);//16进制转化为10进制。
c=uint8(b);//0-255的数值保存unit8格式进行操作for i=1:1080for j=1:1920m=1920*(i-1)+j;red(i,j)=c(m);endend//red二维数组赋值d=textread('g.txt','%s')';e=hex2dec(d);f=uint8(e);green=zeros(1080,1920);for x=1:1080for y=1:1920z=1920*(x-1)+y;green(x,y)=f(z);endend//green二维数组赋值g=textread('b.txt','%s')';h=hex2dec(g);k=uint8(h);blue=zeros(1080,1920);for o=1:1080for p=1:1920q=1920*(o-1)+p;blue(o,p)=k(q);endend// blue二维数组赋值RGB(:,:,1)=red;RGB(:,:,2)=green;RGB(:,:,3)=blue;//RGB三维数组赋值imwrite(RGB,'myPic.bmp');//将RGB保存图片到myPic.bmp,此时本地查看图片即可figure,imshow(RGB)//Matlab显示照片RGB,有可能出现图片过大只显示部分二.操作注意事项所需材料为RGB三色文档,和是一幅1080*1920的空图像。
MATLAB图像显示与格式转换
第五讲M A T L A B可视化(三)图像显示M a t l a b进行图像处理的步骤如下:【目录】一、图像文件格式 (2)1、调色板 (2)2、图像类型 (2)3、图像文件格式 (3)二、读图像和图像信息 (3)1、读取图像 (3)2、读取图像信息 (4)三、图像类别与数据格式 (5)四、图像显示 (7)1、i m s h o w(I,n) (7)2、i m s h o w(I,[l o w,h i g h]) (8)3、i m s h o w(B W) (9)4、i m s h o w(X,M A P) (12)5、i m s h o w(R G B) (13)6、i m s h o w f i l e n a m e (14)7、s u b i m a g e (14)五、保存图像 (15)1、i m w r i t e函数 (15)六、图像数据格式转换 (16)1、索引图像 (16)2、灰度图像 (16)3、真彩色图像 (16)4、二值图像 (17)【正文】一、图像文件格式1、调色板调色板是包含不同颜色的颜色表,每种颜色以红、绿、蓝三种颜色的组合来表示,图像的每一个像素对应一个数字,而该数字对应调色板中的一种颜色。
调色板的单元个数是与图像的颜色数相对应的,256色图像的调色板就有256个单元。
真彩图像的每个像素直接用R、G、B三个字节来表示颜色,因此不需要调色板。
2、图像类型3、图像文件格式二、读图像和图像信息1、读取图像函数i m r e a d可以从任何M a t l a b支持的图像文件格式中,以任意位深度读取一幅图像。
格式为:[X,M A P]=i m r e a d(F I L E N A M E,'F M T'),其中:F I L E N A M E-为需要读入的图像文件名称,F M T-为图像格式。
【例】图像读取演示[X1,M A P1]=i m r e a d('演示图像-1位黑白.t i f');[X2,M A P2]=i m r e a d('演示图像-8位灰度.t i f');[X3,M A P3]=i m r e a d('演示图像-256色.t i f');[X4,M A P4]=i m r e a d('演示图像-16位灰度.t i f');[X5,M A P5]=i m r e a d('演示图像-24位色.t i f');[X6,M A P6]=i m r e a d('演示图像-48位色.t i f');w h o sN a m e S i z e B y t e s C l a s sM A P10x00d o u b l e a r r a yM A P20x00d o u b l e a r r a yM A P3256x36144d o u b l e a r r a yM A P40x00d o u b l e a r r a yM A P50x00d o u b l e a r r a yM A P60x00d o u b l e a r r a yX1427x427182329l o g i c a l a r r a yX2427x427182329u i n t8a r r a yX3427x427182329u i n t8a r r a yX4427x427364658u i n t16a r r a yX5427x427x3546987u i n t8a r r a yX6427x427x31093974u i n t16a r r a yG r a n d t o t a l i s1824058e l e m e n t s u s i n g2558750b y t e s2、读取图像信息可以通过调用i m f i n f o函数获得与图像文件有关的信息,格式如下:I N F O=i m f i n f o(F I L E N A M E,'F M T')其中:返回的I N F O是M a t l a b的一个结构体。
Matlab图像颜色空间转换
Matlab图像颜色空间转换实验内容用matlab软件编程实现下述任务:读入彩色图像,提取其中的R、G、B颜色分量,并展示出来。
我们学习了多种表示图像的颜色空间,请编写程序将图像转换到YUV、YIQ、YCrCb、HIS、CMY等颜色空间,并展示出来。
颜色空间的转化关系参考以下公式:原始图片三个色调分量YUV与RGB之间的转换Y=0.229R+0.587G+0.114BU=-0.147R-0.289G+0.436BV=0.615R-0.515G-0.100BYIQ与RGB之间的转换Y=0.299R+0.587G+0.114BI=0.596R-0.275G-0.321BQ=0.212R-0.523G+0.311BYCrCb与RGB之间的转换Y = 0.2990R + 0.5870G + 0.1140BCr = 0.5000R - 0.4187G - 0.0813B + 128Cb = -0.1687R - 0.3313G + 0.5000B + 128HSI与RGB之间的转换I=〔R+G+B〕/3H=arccos{ 0.5*((R-G)+(R-B)) / ((R-G)^2 + (R-B)(G-B))^0.5}S=1-[min〔R,G,B〕/ I ]CMY与RGB之间的转换心得体会查阅了很多资料,并且学习了关于matlab实现图像颜色空间转换的过程。
不同的颜色空间在描述图像的颜色时侧重点不同。
如RGB〔红、绿、蓝三原色〕颜色空间适用于彩色监视器和彩色摄像机,HSI〔色调、饱和度、亮度〕更符合人描述和解释颜色的方式〔或称为HSV,色调、饱和度、亮度〕,CMY〔青、深红、黄〕、CMYK〔青、深红、黄、黑。
〕主要针对彩色打印机、复印机等,YIQ〔亮度、色差、色差〕是用于NTSC规定的电视系统格式,YUV〔亮度、色差、色差〕是用于PAL规定的电视系统格式,YCbCr〔亮度单一要素、蓝色与参考值的差值、红色与参考值的差值〕在数字影像中广泛应用。
Matlab在图像处理中的颜色空间转换方法研究
Matlab在图像处理中的颜色空间转换方法研究引言:颜色是我们生活中不可或缺的一部分,也是我们感知世界的重要途径。
图像处理通过模拟和处理颜色,能够增强图像的质量和美感。
其中,颜色空间转换是图像处理中关键的步骤之一。
本文将通过研究Matlab在图像处理中的颜色空间转换方法,探讨不同颜色空间下的图像处理技巧。
一、RGB颜色空间RGB颜色空间是最常见的颜色表示方法之一,它使用红、绿和蓝三个色光通道来表示颜色。
在Matlab中,可以通过以下代码将图像从其他颜色空间转换为RGB颜色空间:```rgbImage = lab2rgb(labImage);```其中,lab2rgb是Matlab内置的函数,用于将Lab颜色空间转换为RGB颜色空间。
在转换过程中,Matlab会根据颜色的亮度(L)和色度(a、b)信息重新计算像素的RGB值。
通过RGB颜色空间,我们可以对图像进行色彩平衡、增强对比度等操作,从而提升图像的质量。
二、HSV颜色空间HSV颜色空间使用色相、饱和度和明度三个分量来表示颜色。
其中,色相表示颜色的种类,饱和度表示颜色的纯度,明度表示颜色的亮度。
在Matlab中,可以通过以下代码将RGB颜色空间转换为HSV颜色空间:```hsvImage = rgb2hsv(rgbImage);```在HSV颜色空间中,我们可以通过调整色相、饱和度和明度的值来改变图像的颜色。
例如,可以通过增加饱和度的值来增强图像的颜色饱和度,通过调整明度的值来改变图像的明暗程度。
HSV颜色空间的使用,可以使图像处理更加直观方便。
三、Lab颜色空间Lab颜色空间是一种基于人眼感知特性的颜色空间,它包含了亮度(L)和色度(a、b)两个分量。
在Matlab中,可以通过以下代码将RGB颜色空间转换为Lab颜色空间:```labImage = rgb2lab(rgbImage);```Lab颜色空间不同于RGB和HSV颜色空间的亮度和色彩表示方式,它以更符合人眼感知的方式表示颜色。
MATLAB仿真软件进行图像的输入、输出和格式变换
目录摘要 (I)Abstract (II)1 图像文件格式及图像类型 (1)1.1 MATLAB支持的几种图像文件格式: (1)1.2 matlab几种图像类型 (2)2 图像的输入 (4)3.图像的输入 (6)3.1以图像形式输出(图像的显示) (6)3.1.1索引图像的显示 (6)3.1.2灰度图像的显示 (7)3.1.3二值图像的显示 (8)3.1.4 RGB图像的显示 (8)3.2以图像文件的形式输出 (9)4 图像的保存 (11)5 图像类型转换 (13)5.1 RGB转换成灰度图像 (13)5.2 灰度图像转换为索引图像 (13)5.3 灰度图像转化为二值图像 (14)5.4 RGB图像转化为索引图像 (15)6 课设总结 (16)参考文献 (17)附录 (18)附录1:图像显示代码 (18)附录2:图像转换代码 (19)MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB 本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换以及材质贴图等。
利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布等情况。
本次课程设计介就是Matlab环境下的一些最基本的图像处理操作,如读取、保存和显示不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、RGB图像和二值图像的相互转换。
关键词:MATLAB ;图像处理;图像转换The MathWorks Inc. MATLAB is a U.S. commercial mathematics software for algorithm development, data visualization, data analysis and numerical calculation senior technical computing language and interactive environment, including MATLAB and Simulink two parts. As a powerful scientific computing platforms, it can almost satisfy all the calculations that needs. MATLAB itself is a powerful tool of data visualization that can display data through various forms, such as graylevel histogram, contours, montage mixing, pixel analysis, the layer texture and transformation. With visual graphics, it can not only evaluate image characteristics, but also analyze the distribution of color image.The curriculum is designed to refer some basic image processing operations Matlab environment, such as read, save and display images of different formats and image formats such as index mutual transform images, grayscale images, RGB image and binary image conversion.Keyword: MATLAB;image operation;image exchange1 图像文件格式及图像类型1.1 MATLAB支持的几种图像文件格式:⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式。
matlab画图中线型及颜色设置
matlab画图中线型及颜色设置MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能.本章主要介绍2维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一些图形的修饰与标注函数及操作和控制MATLAB各种图形对象的方法.第一节图形窗口与坐标系一.图形窗口1.MATLAB在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸.2. 在MATLAB下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句柄.MATLAB通过管理图形窗口的句柄来管理图形窗口;3.当前窗口句柄可以由MATLAB函数gcf获得;4.在任何时刻,只有唯一的一个窗口是当前的图形窗口(活跃窗口);figure(h)----将句柄为h的窗口设置为当前窗口;5.打开图形窗口的方法有三种:1)调用绘图函数时自动打开;2)用File---New---Figure新建;3)figure命令打开,close命令关闭.在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形.6.窗口中的图形打印:用图形窗口的File菜单中的Print项.7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit菜单中选择Properties项,打开图形对象的参数设置窗口,可以设置对象的属性.二.坐标系1.一个图形必须有其定位系统,即坐标系;2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系;3.每个坐标系都有唯一的标识符,即句柄值;4.当前坐标系句柄可以由 MATLAB函数gca获得;5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h为指定坐标系句柄值.6.一些有关坐标轴的函数:1)定义坐标范围:一般MATLAB自动定义坐标范围,如用户认为设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax]) 来重新设定;292) 坐标轴控制:MATLAB的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axis off;axis on则显示坐标轴(缺省值).3)通常MATLAB的坐标系是长方形,长宽比例大约是 4:3,为了得到一个正方形的坐标系可用:axis square4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比例的坐标系,可用:axis equal第二节二维图形的绘制一. plot函数plot 函数是最基本的绘图函数,其基本的调用格式为:1.plot(y)------绘制向量y对应于其元素序数的二维曲线图, 如果y为复数向量,则绘制虚部对于实部的二维曲线图.例:绘制单矢量曲线图.y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];plot(y)由于y矢量有10个元素,x坐标自动定义为[1 2 3 4 5 6 7 8 9 10].图形为: 1234567891024681012141618202.plot(x,y)------ 绘制由x,y所确定的曲线.1)x,y是两组向量,且它们的长度相等,则plot(x,y)可以直观地绘出以x为横坐标,y为纵坐标的图形.如:画正弦曲线:t=0:0.1:2*pi;y=sin(t);plot(t,y)2)当 plot(x,y)中,x是向量,y是矩阵时,则绘制y矩阵中各行或列对应于30向量x的曲线.如果y阵中行的长度与x向量的长度相同,则以y的行数据作为一组绘图数据;如果y阵中列的长度与x向量的长度相同,则以y的列数据作为一组绘图数据;如果y阵中行, 列均与x向量的长度相同,则以y的每列数据作为一组绘图数据.例:下面的程序可同时绘出三条曲线.MATLAB在绘制多条曲线时,会按照一定的规律自动变化每条曲线的的颜色.x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(2,:)=0.3*sin(x);plot(x,y)或者还可以这样用:x=0:pi/50:2*pi;y=[ sin(x); 0.6*sin(x); 0.3*sin(x)];plot(x,y)01234567-1-0.8-0.6-0.4-0.20.20.40.60.813) 如果x,y是同样大小的矩阵,则plot(x,y)绘出y中各列相应于x中各列的图形.例:x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2;y(1,:)=sin(x(1,:));y(2,:)=0.6*sin(x(2,:));y(3,:)=0.3*sin(x(3,:));plot(x,y)x=x';y=y';figure31plot(x,y)在这个例子中,x------ 3x101,y------3x101,所以第一个plot按列画出101条曲线,每条3个点;而x'------101x3,y'------ 101x3,所以第二个plot 按列画出3条曲线,每条101个点.012345678-1-0.8-0.6-0.4-0.20.20.40.60.81012345678-1-0.8-0.6-0.4-0.20.20.40.60.813. 多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)上面的plot格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MATLAB在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项选项意义选项意义'r' 红色 'm' 粉红'g' 绿色 'c' 青色32'b' 兰色 'w' 白色'y' 黄色 'k' 黑色各种线型属性选项选项意义选项意义'-' 实线 '--' 虚线':' 点线 '-.' 点划线各种标记点属性选项选项意义选项意义'.' 用点号绘制各数据点 '^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点 'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点 '>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点 '<' 用左三角绘制各数据点's'或squar 用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamond用菱形绘制各数据点 'h' 用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的 '+'号绘制曲线.注意:1)表示属性的符号必须放在同一个字符串中;2)可同时指定2~3个属性;3) 与先后顺序无关;4)指定的属性中,同一种属性不能有两个以上.例:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r',t,y2, ':g',t,y3, '*b')该程序还可以按下面的方式写:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r')hold onplot(t,y2, ':g')plot(t,y3, '*b')hold off注:在MATLAB中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了hold on后,可以保持坐标系中已绘出的图形.3301234567-1-0.8-0.6-0.4-0.20.20.40.60.81图(a)还可以进一步设置包括线的宽度(LineWidth),标记点的边缘颜色(MarkerEdgeColor),填充颜色 (MarkerFaceColor)及标记点的大小(MarkerSize)等其它绘图属性.例:设置绘图线的线型,颜色,宽度,标记点的颜色及大小.t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineWidth',2,... %设置线的宽度为2'MarkerEdgeColor','k',... %设置标记点边缘颜色为黑色'MarkerFaceColor','y',... %设置标记点填充颜色为黄色'MarkerSize',10) %设置标记点的尺寸为10绘出图形如下:00.511.522.533.5-0.5-0.4 -0.3-0.2-0.10.10.20.30.40.5344. 双Y轴绘图:plotyy()函数.其调用格式为:plotyy(x1,y1,x2,y2)------ 绘制由x1,y1和x2,y2确定的两组曲线,其中x1, y1的坐标轴在图形窗口的左侧,x2,y2的坐标轴在图形窗口的右侧.Plotyy(x1,y1,x2,y2, 'function1','function2')------功能同上,function是指那些绘图函数如:plot,semilogx,loglog 等.例如:在一个图形窗口中绘制双Y轴曲线.x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,'plot','stem')图形如下:0246810120.511.50246810120.511.5stem: 绘制stem形式的曲线(上端带圈的竖线).绘图结果:两条图线自动用不同的颜色区分,两个坐标的颜色与图线的颜色相对应,左边的Y轴坐标对应的是plot形式的曲线,右边的Y坐标对应的是stem形式的曲线.二.对数坐标图绘制函数:在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogy和loglog函数.1)semilogx( )------绘制以X轴为对数坐标轴的对数坐标图.其调用格式为:semilogx(x,y,'属性选项')其中属性选项同plot函数.该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.2)semilogy( )------绘制以Y轴为对数坐标轴的对数坐标图.其调用格式为:semilogy(x,y,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标.353)loglog( )------ 绘制X,Y轴均为对数坐标轴的图形.其调用格式为:loglog(x,y,'属性选项')该函数分别对横,纵坐标都进行对数变换.例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subplot(221), semilogx(x,y);subplot(222), semilogy(x,y);subplot(223), loglog(x,y);4)MATLAB还提供了一个实用的函数:logspace( )函数, 可按对数等间距地分布来产生一个向量,其调用格式为:x=logspace(x1,x2,n)这里,x1 表示向量的起点;x2表示向量的终点;n表示需要产生向量点的个数(一般可以不给出,采用默认值50).在控制系统分析中一般采用这种方法来构成频率向量w.关于它的应用后面还要讲到.三.极坐标图的绘制函数:绘极坐标图可用polar( )函数.其调用格式如下:polar(theta, rho,'属性选项')------theta:角度向量,rho:幅值向量,属性内容与plot函数基本一致.例如:极坐标模型为:3145/)/)cos((+ =θρ, ],[πθ80∈则绘出极坐标图的程序为:theta=0:0.1:8*pi;p=cos((5*theta)/4)+1/3;polar(theta,p)0.511.53021060240902701203001503301800四. 绘制多个子图:subplot( )函数MATLAB允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm个部分.分割图形窗口用subplot函数来实现,其调用格式为:subplot(n,m,k) 或subplot(nmk)------n,m分别表示将窗口分割的行数和列数,36k表示要画图部分的代号,表示第几个图形,nmk三个数可以连写,中间不用符号分开.例如:将窗口划分成2x2=4个部分,可以这样写:subplot(2,2,1),plot(……)subplot(2,2,2),……subplot(2,2,3),……subplot(2,2,4),……221 222223 224注:subplot函数没有画图功能,只是将窗口分割.第三节图形的修饰与标注MATLAB提供了一些特殊的函数修饰画出的图形,这些函数如下:1) 坐标轴的标题:title函数其调用格式为:title('字符串')------字符串可以写中文如:title('My own plot')2)坐标轴的说明:xlabel和ylabel函数格式:xlabel('字符串')ylabel(' 字符串')如:xlabel('This is my X axis')ylabel('My Y axis')3)图形说明文字:text和gtext函数A.text函数:按指定位置在坐标系中写出说明文字.格式为:text(x1, y1, '字符串', '选项')x1,y1为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1的坐标单位,如没有选项,则x1,y1的坐标单位和图中一致;如选项为'sc', 则x1,y1表示规范化窗口的相对坐标,其范围为0到1.(1,1)规范化窗口(0,0)37如:text(1,2, '正弦曲线')B.gtext函数:按照鼠标点按位置写出说明文字.格式为:gtext('字符串')当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线,移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext参数中的字符串就标注在该位置上.4) 给图形加网格:grid函数在调用时直接写grid即可.上面的函数的应用实例:例: 在图形中加注坐标轴标识和标题及在图形中的任意位置加入文本.t=0:pi/100:2*pi;y=sin(t);plot(t,y),grid,axis([0 2*pi -1 1])xlabel('0 leq itt rm leq pi','FontSize',16)ylabel('sin(t)','FontSize',20)title('正弦函数图形','FontName',' 隶书' ,'FontSize',20)text(pi,sin(pi),'leftarrowsin(t)=0','FontSize',16)text(3*pi/4,sin(3*pi/4),'leftarrowsin(t)=0.707', 'FontSize',16)text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707rightarrow',...'FontSize',16,'HorizontalAlignment','right')画出的图形为:0246-1-0.50.510 ≤ t ≤ πsin(t)正弦函数图形←sin(t)=0←sin(t)=0.707sin(t)=-0.707→5) 在图形中添加图例框:legend函数其调用格式为:A.legend('字符串1', '字符串2', ……)------以字符串1,字符串2…… 作38为图形标注的图例.B.legend('字符串1', '字符串2', ……, pos)------pos指定图例框显示的位置.图例框被预定了6个显示位置:0------ 取最佳位置;1------右上角(缺省值);2------左上角;3------左下角;4------右下角;-1------图的右侧.例:在图形中添加图例.x=0:pi/10:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,'-o',x,y3,'-*')legend('曲线1','曲线2','曲线3')绘出图形如下:02468-1-0.50.51曲线1曲线2曲线36)用鼠标点选屏幕上的点:ginput函数格式为: [x, y, button]=ginput(n)其中:n为所选择点的个数;x,y均为向量,x为所选n个点的横坐标;y为所选n个点的纵坐标.button为n维向量,是所选n个点所对应的鼠标键的标号:1------左键;2------中键;3------ 右键.可用不同的鼠标键来选点,以区别所选的点.此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标.39第四节 MATLAB下图形对象的修改MATLAB图形对象是指图形系统中最基本,最底层的单元,这些对象包括:屏幕(Root),图形窗口(Figures), 坐标轴(Axes),控件(Uicontrol),菜单(Uimenu),线(Lines),块(Patches),面(Surface),图像 (Images),文本(Text)等等.根据各对象的相互关系,可以构成如下所示的树状层次:RootFiguresAxes Uicontrol Uimenu Uicontextmenu (对象菜单)Images Line Patch Surface Text对各种图形对象进行修改和控制,要使用MATLAB的图形对象句柄(Handle).在MATLAB中, 每个图形对象创立时,就被赋予了唯一的标识,这个标识就是该对象的句柄.句柄的值可以是一个数,也可以是一个矢量.如每个计算机的根对象只有一个,它的句柄总是0,图形窗口的句柄总是正整数,它标识了图形窗口的序号等.利用句柄可以操纵一个已经存在的图形对象的属性,特别是对指定图形对象句柄的操作不会影响同时存在的其它图形对象,这一点是非常重要的.一.对图形对象的修改可以用下面函数:1)set函数:用于设置句柄所指的图形对象的属性.Set函数的格式为:set(句柄, 属性名1, 属性值1, 属性名2, 属性值2, ……)例:h=plot(x,y)set(h, 'Color', [1,0,0])------将句柄所指曲线的颜色设为红色.2)get函数:获取指定句柄的图形对象指定属性的当前值.格式为:get(句柄, '属性名')如: get(gca, 'Xcolor')------获得X轴的当前颜色属性值.执行后可返回X轴的当前颜色属性值[0,0,0](黑色).3)如果没有设置句柄,则可以使用下列函数获得:gcf:获得当前图形窗口的句柄;gca:获得当前坐标轴对象的句柄;gco:获得当前对象的句柄.如:A.要对图形窗口的底色进行修改,可用:set(gcf, 'Color', [1,1,1])------将图形窗口底色设为白色B.要把当前X轴的颜色改为绿色,可用:set(gca, 'Xcolor', [0,1,0])40C.还可对坐标轴的显示刻度进行定义:t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,'xtick',[-pi:pi/2:pi],'xticklabel',['-pi','-pi/2','0','pi/2','pi'])-pi-pi/20pi/2pi-1-0.50.51本例中用'xtick'属性设置x轴刻度的位置(从-pi~pi,间隔pi/2,共设置5个点),用'xticklabel'来指定刻度的值,由于通常习惯于用角度度量三角函数, 因此重新设置['-pi','-pi/2','0','pi/2','pi']5个刻度值.二.一些常用的属性如下:1)Box属性:决定图形坐标轴是否为方框形式,选项为'on'(有方框),'off'(无方框);2)'ColorOrder'属性:设置多条曲线的颜色顺序,默认值为:[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]黄色粉色天蓝红色绿色兰色颜色向量还有:[1 1 1]------白色;[0 0 0]------黑色.3)坐标轴方向属性:'Xdir','Ydir','Zdir',其选项为:'normal'------正常'reverse'------反向4)坐标轴颜色和线型属性:'Xcolor','Ycolor','Zcolor'------ 轴颜色,值为颜色向量'LineWidth'------ 轴的线宽,值为数字'Xgrid','Ygrid','Zgrid'------坐标轴上是否加网格,值为'on'和'off'.5)坐标轴的标尺属性:'Xtick','Ytick','Ztick'------ 标度的位置,值为向量'Xticklabel','Yticklabel','Zticklabel'------ 轴上标度的符号,它的值为与标度位置向量同样大小(向量个数相同)的向量.5)字体设置属性:'FontAngle'------ 设置字体角度,选项为:41'normal'------ 正常;'italic'------ 斜体;'oblique'------ 倾斜;'FontName'------ 字体名称;'FontSize'------ 字号大小'FontWeight'------ 字体的轻重,选项为:'light','normal','bold'(注:本资料素材和资料部分来自网络,仅供参考。
Matlab 图像类型及转换
Matlab 图像类型1.索引图像索引图像包括一个数据矩阵X,一个颜色映射矩阵Map。
其中Map是一个m×3的数据阵列,其每个元素的值均为[0,1]之间的双精度浮点型数据。
像素颜色由数据矩阵X作为索引值向矩阵Map进行索引。
例如值1指向矩阵Map中的第一行,值2指向第二行,依此类推。
可用下列代码显示一幅索引图像。
在Matlab中,索引图像是从像素值到颜色映像表值的直接映射。
load trees;image(X);colormap(map);2.强度(灰度)图像大多数情况下,强度图像很少和颜色映像表一起保存。
但是在显示强度图像时,Matlab 仍然在后台使用系统预定义的默认的灰度颜色映像表。
在Matlab中,要显示一幅强度图像,需要调用函数imagesc(即image scale,图像缩放函数)。
load trees;I=double(X)/255;imagesc(I,[0 1]);colormap(gray);3.RGB图像RGB图像即真彩图像,在Matlab中存储为n×m×3的数据数组。
load trees;image(X);类型转换1.将矩阵转换为灰度图像I=mat2gray(X, [xmin xmax])返回矩阵I的值的范围在0.0(黑)到1.0(白)之间。
xmin,xmax分别表示对应于I 中0.0和1.0的X中的值,缺省时分别取X中的最小值和最大值。
I=imread(‘saturn.tif’);J=filter2(fspecial(‘sobel’),I);K=mat2gray(J);Imshow(K);。
matlab图像类型转换
matlab中图像数据类型转换分类:matlab 2012-05-16 09:10 3662人阅读评论(2) 收藏举报matlabtiff图像处理存储image图形Matlab中的图像数据类型转换MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double因此 I2=im2double(I1) :把图像数组I1转换成double精度类型;如果不转换,在对uint8进行加减时会产生溢出,可能提示的错误为:Function '*' is not defined for values of class 'uint8'。
图像数据类型转换函数默认情况下,matlab将图像中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。
im2double():将图像数组转换成double精度类型im2uint8():将图像数组转换成unit8类型im2uint16():将图像数组转换成unit16类型但是:对double型图像用im2uint8(),会出现问题。
double默认为0-1之间的数,uint8为0-255之间的数,如果数组uint8型x1={0,1,2},转化后为x2={0,0.5,1};如果数组double型y1={0,1,2},转化后为y2={0,255,255};在用matlab工具箱做直方图处理时,图像必须为整型,即如果是double型,必须转化为整型解决办法:图像处理工具箱1. 图像和图像数据缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点数,所需存储量很大;MATLAB还支持另一种类型无符号整型(uint8),即图像矩阵中每个数据占用1个字节。
在使用MATLAB工具箱时,一定要注意函数所要求的参数类型。
利用Matlab软件对医学彩色图像的空间转换
利用Matlab软件对医学彩色图像的空间转换目的:介绍Matlab软件对免疫组化彩色图像的空间转换。
方法:通过Matlab 软件中的工具箱来对免疫组化的图像进行处理。
结果:将彩色图像从RGB彩色空间转换为HSI彩色空间。
结论:Matlab软件中的工具箱能成功地将免疫组化的彩色图像从RGB彩色空间转换为HSI彩色空间。
标签:Matlab软件;免疫组化彩色图像;免疫组化彩色图像在Matlab软件中常用的有红、绿、蓝三基色(RGB)彩色空间、YUV(YCbCr)彩色空间、YIQ(Brightness Intensity Saturation)彩色空间、HSV(Hue Saturation Value)彩色空间以及HSI(Hue Saturation Intensity)彩色空间等[1],用可以接受的方式在执行标准下简化彩色规范这就是彩色空间的用途[2]。
用Matlab工具箱处理图像,RGB(红、绿、蓝)彩色空间较为常用,彩色视频等领域在该彩色空间应用较广泛。
而HSI满足人们的颜色描述和解释方式,此彩色空间在将图像放入各种颜色和灰度信息上具有优势,因而更加符合灰度处理技术要求[3-4]。
每一种颜色空间都有各自的优缺点,所以在图像处理中,人们要根据图像本身的特点来选择合适的颜色空间进行下一步的操作[3]。
RGB彩色空间里别的颜色都是由红、蓝、绿这三种色彩的叠加而成,每种颜色出现在原色光谱分量中,其中,红色用R来表示,绿色用G来表示,而蓝色用B来表示。
一幅RGB图像的每个像素点由三个分量构成,可以被看成是三幅灰度图像。
灰度图像有256个亮度水平级,红、蓝、绿三种色彩叠加就可以称为“真彩色”,形成的颜色有千万种多。
在Matlab中一幅RGB图像是彩色像素的一个数组,在特定空间位置上每一个彩色像素点都有所对应的彩色图像的红、绿、蓝三个分量。
在RGB彩色空間中,由三种颜色叠加可以形成其它的颜色,所以也称为加色模式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
m a t l a b图像类型与彩色模型的转换仅供学习与交流,如有侵权请联系网站删除 谢谢13第六讲 图像类型与 彩色模型的转换【目录】................................................. .......................................................................................................................................................... 2 1、真彩图像→索引图像 .. (2)2、索引图像→真彩图像 ........................................................................................................ 3 3、真彩图像→灰度图像 ........................................................................................................ 4 4、真彩图像→二值图像 ........................................................................................................ 4 5、索引图像→灰度图像 ........................................................................................................ 4 6、灰度图像→索引图像 ........................................................................................................ 5 7、灰度图像→二值图像 ........................................................................................................ 6 8、索引图像→二值图像 ........................................................................................................ 7 9、数据矩阵→灰度图像 ........................................................................................................ 8 二、彩色模型的转换 ................................................................................................................... 8 1、图像的彩色模型 ................................................................................................................ 8 2、彩色转换函数 .................................................................................................................... 9 三、纹理映射 . (11)仅供学习与交流,如有侵权请联系网站删除 谢谢13【正文】一、图像类型的转换④⑧③ A⑥⑤仅供学习与交流,如有侵权请联系网站删除 谢谢131、真彩图像→索引图像【格式】X =d i t h e r (R G B ,m a p )【说明】按指定的颜色表m a p 通过颜色抖动实现转换 【输入】R G B 可以是d o u b l e 或u i n t 8类型【输出】X 超过256色则为d o u b l e 类型,否则输出为u i n t 8型【例】C L F ,R G B =i m r e a d ('f l o w e r s .t i f '); 真彩图10020030040050050100150200250300350索引图10020030040050050100150200250300350【输出】R G B 为d o u b l e 类型【例】仅供学习与交流,如有侵权请联系网站删除 谢谢13索引图10020030050100150200250真彩图10020030050100150200250【例】真彩图10020030040050050100150200250300350灰度图10020030040050050100150200250300350仅供学习与交流,如有侵权请联系网站删除 谢谢13【输出】B W 为u i n t 8型【例】真彩图10020030040050050100150200250300350二值图10020030040050050100150200250300350【输入】X 可以是d o u b l e 或u i n t 8类型,m a p 为d o u b l e 类型 【输出】I 是d o u b l e 类型,N e w m a p 为d o u b l e 类型【例】C L F ,l o a d t r e e s ; I =i n d 2g r a y (X ,m a p ); N e w m a p =r g b 2g r a y (m a p );s u b p l o t (2,2,1);s u b i m a g e (X ,m a p );t i t l e ('索引图') s u b p l o t (2,2,3);s u b i m a g e (I );t i t l e ('格式1灰度图')s u b p l o t (2,2,4);s u b i m a g e (X ,N e w m a p );t i t l e ('格式2灰度图')仅供学习与交流,如有侵权请联系网站删除 谢谢13索引图10020030050100150200250格式1灰度图10020030050100150200250格式2灰度图10020030050100150200250【格式1】1、[X ,m a p ]=g r a y 2i n d (I ,n )2、X =g r a y s l i c e (I ,n )3、X =g r a y s l i c e (I ,v )【说明】格式1:将灰度图像转换为灰度级为n 的索引图像X ,n 的默认值为64;格式2:将灰度图像I 均匀量化为n 个等级,然后转换为伪彩色图像X ;格式3:按指定的阈值矢量v (其中每个元素在0和1之间)对图像I 进行阈值划分,然后转换成索引图像【输入】I 可以是d o u b l e 类型、u i n t 8类型和u i n t 16类型【输出】m a p 的行不大于256,则X 为u i n t 类型,否则为d o u b l e 类型【例】C L F ,I =i m r e a d ('r i c e .t i f '); [X 1,m a p 1]=g r a y 2i n d (I ,16);仅供学习与交流,如有侵权请联系网站删除 谢谢13X 2=g r a y s l i c e (I ,8);X 3=g r a y s l i c e (I ,255*[0 0.21 0.23 0.26 0.30 0.35 0.6 1.0]'); s u b p l o t (2,2,1);s u b i m a g e (I );t i t l e ('灰度图')s u b p l o t (2,2,2);s u b i m a g e (X 1,m a p 1);t i t l e ('16灰度级图') s u b p l o t (2,2,3);s u b i m a g e (X 2,h o t (8));t i t l e ('均匀量化图') 灰度图501001502002505010015020025016灰度级图5010015020025050100150200250均匀量化图5010015020025050100150200250非均匀量化图5010015020025050100150200250【格式一】B W =d i t h e r (I );【格式一】B W =i m 2b w (I ,l e v e l ) 【说明】格式一用抖动的方式实现转换,格式二用阈值方式转换 【输入】I 可以是d o u b l e 类型和u i n t 8类型 【输出】B W 为u i n t 8类型【例】C L F ,I =i m r e a d ('s a t u r n .t i f '); B W 1=d i t h e r (I ); B W 2=i m 2b w (I ,0.5);s u b p l o t (2,2,1);s u b i m a g e (I );t i t l e ('灰度图')s u b p l o t (2,2,3);s u b i m a g e (B W 1);t i t l e ('抖动二值化') 灰度图10020030040050100150200250300抖动二值化10020030040050100150200250300阈值二值化10020030040050100150200250300【格式】B W =i m 2b w (X ,m a p ,l e v e l ) 【输入】X 可以是d o u b l e 类型和u i n t 8类型 【输出】B W 为u i n t 8类型【例】索引图10020030050100150200250二值图10020030050100150200250仅供学习与交流,如有侵权请联系网站删除 谢谢139、数据矩阵→灰度图像【格式】1、I =m a t 2g r a y (A ,[m a x ,m i n ])2、I =m a t 2g r a y (A )【说明】按指定的取值区间[m a x ,m i n ]将数据矩阵A 转换为灰度图像I 。