在MATLAB里能求出彩色图像的R、G、B三个分量吗?

解决方案 »

  1.   

    用imread就好了
    如a=imread('filename');得到地a就是个三维矩阵了,就是R、G、B三个矩阵的组合了。
      

  2.   

    补充一下: a(:,:,1),a(:,:,2),a(:,:,3)分别就是它的R,G,B三个分量。
      

  3.   

    http://www.mathworks.com/access/helpdesk/help/techdoc/ref/imread.shtml一、前言
    MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。作为强大的科学计算平台,它几乎能够满足所有的计算需求。自MATLAB4.0问世以来,MATLAB语言就一直受到工程应用的各个领域的学者和工程师们的关注。2001年Mathworks公司又推出了强大的MATLAB升级版本MATLAB6.0,使其在符号运算和图形处理功能上得到了进一步完善。除此之外,新版本的MATLAB还增强了它的各种应用工具箱,使MATLAB的应用面越来越广,功能也越来越强大。因此MATLAB已成为最为普遍的计算工具之一。
    MATLAB软件具有很强的开放性和适用性。在保持内核不便的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(toolbox)。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、概率统计、信号处理、图像处理和物理仿真等,都在工具箱(Toolbox)家族中有自己的一席之地。此外,MATLAB还支持用户用自己编写的M文件(MATLAB的程序文件)组成自己的工具箱,极大的方便了用户的使用和维护。本文想就MATLAB中提供的图像处理工具箱(Image Processing Toolbox)的使用作一些实例方面的介绍。
    二、MATLAB数字图像处理
    MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MATLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。
    MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。下面用一些实例进行简单说明:
    1、图像的读取
    MATLAB中从图像文件中读取数据用函数imread(),这个函数的作用就是将图像文件的数据读入矩阵中,此外还可以用imfinfo()函数查看图像文件的信息(见例1)
    %例1:图像数据及图像信息的读取
    imfinfo e:\matlabwork\tuxiang\Girl.bmp
    %读取图像信息
    [A,M]=imread('e:\matlabwork\tuxiang\Girl.bmp','bmp'); 
    %图像数据的读取,将图像数据放入矩阵A中,颜色数据放入矩阵M中
    imshow(A,M);title('原图像');
    M(:,1)=0;  %将颜色数据矩阵的一列置零
    figure
    imshow(A,M);title('改变颜色后的图像')