《Matlab像颜色空间转换》由会员分享,可在线阅读,更多相关《Matlab像颜色空间转换(7页珍藏版)》请在金锄头文库上搜索。
1、Matlab像颜色空间转换实验内容用matlab软件编程实现下述任务:读入彩色像,提取其中的R、G、B颜色分量,并展示出来。我们学习了多种表示像的颜色空间,请编写程序将像转换到YUV、YIQ、YCrCb、HIS、CMY等颜色空间,并展示出来。颜色空间的转化关系参考以下公式:原始片三个色调分量YUV与RGB之间的转换Y0.229R0.587G0.114BU0.147R0.289G+0.436BV=0.615R0.515G0.100BYIQ与RGB之间的转换Y0.299R0.587G0.114BI0.596R0.275G0.321BQ=0.212R0.523G0.311BYCrCb与RGB之间的转
2、换Y = 0.2990R + 0.5870G + 0.1140BCr = 0.5000R - 0.4187G - 0.0813B + 128Cb = -0.1687R - 0.3313G + 0.5000B + 128HSI与RGB之间的转换I(RGB)/3Harccos 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(红、绿、蓝三原色)颜色空间适用于彩色监视器和彩色摄像机,
3、HSI(色调、饱和度、亮度)更符合人描述和解释颜色的方式(或称为HSV,色调、饱和度、亮度),CMY(青、深红、黄)、CMYK(青、深红、黄、黑。)主要针对彩色打印机、复印机等,YIQ(亮度、色差、色差)是用于NTSC规定的电视系统格式,YUV(亮度、色差、色差)是用于PAL规定的电视系统格式,YCbCr(亮度单一要素、蓝色与参考值的差值、红色与参考值的差值)在数字影像中广泛应用。近年来出现了另一种颜色空间l,由于其把亮度和颜色信息最大限度的分离,在该颜色空间可以分别处理亮度或颜色而不相互影响。通过这次实验,实现了五种颜色空间的转换,看到了不同的绚丽结果,掌握了一些基本的知识。程序clearr
4、gb=imread(G:LearningMultiMedia666.jpg);rgb2hsi(rgb);rgb_r=rgb(:,:,1);rgb_g=rgb(:,:,2);rgb_b=rgb(:,:,3);n, m = size(rgb);zero=zeros(n,m/3);Y = 0.229 * rgb_r + 0.587 * rgb_g + 0.114 * rgb_b;U = -0.147 * rgb_r - 0.289 * rgb_g + 0.436 * rgb_b;V = 0.615 * rgb_r - 0.515 * rgb_g - 0.100 * rgb_b;I = 0.596 *
5、 rgb_r - 0.275 * rgb_g - 0.321 * rgb_b;Q = 0.212 * rgb_r - 0.523 * rgb_g + 0.311 * rgb_b;Cr = 0.5 * rgb_r - 0.4187 * rgb_g - 0.0813 * rgb_b + 128;Cb = -0.1687 * rgb_r - 0.3313 * rgb_g + 0.5 * rgb_b + 128;I = (rgb_r + rgb_g + rgb_b) / 3;R=cat(3,Y,zero,zero);G=cat(3,zero,U,zero);B=cat(3,zero,zero,V);R
6、GB=cat(3, Y, Cr, Cb);%通过修改参数的值可以显示各种颜色空间的效果imshow(RGB);subplot(2,2,1),imshow(R),title(红色分量);subplot(2,2,2),imshow(G),title(绿色分量);subplot(2,2,3),imshow(B),title(蓝色分量);subplot(2,2,4),imshow(RGB);HIS:function hsi=rgb2hsi(rgb)%提取单通道分量rgb=im2double(rgb);r=rgb(:,:,1);g=rgb(:,:,2);b=rgb(:,:,3);%实现转换num=0.5
7、*(r-g)+(r-b);den=sqrt(r-g).2+(r-b).*(g-b);theta=acos(num./(den+eps);H=theta;H(bg)=2*pi-H(bg);H=H/(2*pi);num=min(min(r,g),b);den=r+g+b;den(den=0)=eps;S=1-3.*num./den;H(S=0)=0;I=(r+g+b)/3;hsi=cat(3,H,S,I);imshow(hsi);CMY:function hsi=rgb2CMY(rgb)rgb=im2double(rgb);r=rgb(:,:,1);g=rgb(:,:,2);b=rgb(:,:,3);C = 1 - r;M = 1 - g;Y = 1 - b;CMY=cat(3,C,M,Y);imshow(CMY);