图像处理 彩色噪声_图像处理 不同噪声的特点与处理方法 - CSDN
  • 问题1:对一副彩色图像分别添加高斯噪声和椒盐噪声,输出结果图像; 问题2:采用K-NN均值滤波对二种噪声图像进行去噪,测试3组不同的参数,输出结果图像,并分析实验效果; 问题3:采用K-NN中值滤波对二种噪声图像...
  • 源于 :http://zhidao.baidu.com/question/89228643.html 百度中...> M=imread('fly.bmp') %读取MATLAB中的名为cameraman的图像 subplot(3,3,1) imshow(M) %显示原始图像 title('original') P1=imnoise(M,'gaussi...

     

     

     

    源于 :http://zhidao.baidu.com/question/89228643.html 百度中的

    >>

    M=imread('fly.bmp') %读取MATLAB中的名为cameraman的图像

    subplot(3,3,1)

    imshow(M) %显示原始图像

    title('original')

    P1=imnoise(M,'gaussian',0.02) %加入高斯躁声

    subplot(3,3,2)

    imshow(P1) %加入高斯躁声后显示图像

    title('gaussian noise');

                                    

                                    >> P2=imnoise(M,'salt&pepper',0.02)%加入椒盐噪声
                                    ??? Error using ==> imnoise>ParseInputs
                                     Unknown noise type: 'salt&pepper'. 修改为 'salt & pepper'

                                    Error in ==> imnoise at 85
                                    [a, code, classIn, classChanged, p3, p4] = ParseInputs(varargin{:});

                                             P2=imnoise(M,'salt & pepper',0.02) %加入椒盐躁声

    >>P2=imnoise(M,'salt & pepper',0.02) %加入椒盐躁声

    >> subplot(3,3,3)
    >> imshow(P2)
    >> title('salt & pepper noise');

     

                                               >> g=medfilt2(P1)%
                                               ??? Function ORDFILT2 expected its first input, A, to be two-dimensional.

                                                Error in ==> ordfilt2>ParseInputs at 135
                                               iptcheckinput(A, {'numeric','logical'}, {'2d','real'}, mfilename, 'A', 1);

                                                Error in ==> ordfilt2 at 51
                                               [A,order,domain,s,padopt,msg] = ParseInputs(varargin{:});

                                               Error in ==> medfilt2 at 53
                                               b = ordfilt2(a, order, domain, padopt);

                                              就是这个中值滤波函数medfilt2的接口是不符合这幅彩色图的

                                              对于这个问题,google:  彩色图像 中值滤波

                                              方案是 对每个图层滤波,然后叠加在一起.涉及2个问题:1如何图像分离rgb,2如何合成bmp图像

    修改为

    g1=medfilt2(P1(:,:,1));

    g2=medfilt2(P1(:,:,2));

    g3=medfilt2(P1(:,:,3));

    >> g(:,:,1)=g1;
    >> g(:,:,2)=g2;
    >> g(:,:,3)=g3;
    >> subplot(3,3,5)
    >> imshow(g)
    >> title('medfilter gaussian')   成功了

    >> h1=medfilt2(P2(:,:,1)) ;
    >> h2=medfilt2(P2(:,:,2)) ;
    >> h3=medfilt2(P2(:,:,3)) ;
    >> h(:,:,1)=h1;
    >> h(:,:,2)=h2;
    >> h(:,:,3)=h3;
    >> subplot(3,3,6)
    >> imshow(h)
    >> title('medfilter salt & pepper noise')

    >> l=[ 1 1 1
               1 1 1
               1 1 1 ];
    >> l=l/9;

    >> k1=conv2(P1(:,:,1),l) ;
    Warning: CONV2 on values of class UINT8 is obsolete.
             Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
    > In uint8.conv2 at 11

    >> k2=conv2(P1(:,:,2),l) ;
    Warning: CONV2 on values of class UINT8 is obsolete.
             Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
    > In uint8.conv2 at 11
    >> k3=conv2(P1(:,:,3),l) ;
    Warning: CONV2 on values of class UINT8 is obsolete.
             Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
    > In uint8.conv2 at 11
    >> k(:,:,1)=k1;
    >> k(:,:,2)=k2;
    >> k(:,:,3)=k3;
    >> subplot(3,3,8)
    >> imshow(k,[])
    title('arithmeticfilter gaussian')
    >> imshow(k)
    >> title('arithmeticfilter gaussian')

                                                                            效果一片空白

    修改如下

    >> k1=conv2(double(P1(:,:,1)),l) ;
    >> k2=conv2(double(P1(:,:,2)),l) ;
    >> k3=conv2(double(P1(:,:,3)),l) ;
    >> k(:,:,1)=k1;
    >> k(:,:,2)=k2;
    >> k(:,:,3)=k3;
    >> subplot(3,3,8)
    >> imshow(k,[])
    title('arithmeticfilter gaussian')                            效果任然一片空白,估计是预处理不恰当,所以必须改正一下

                                                                           为了获取实验的真实情况:

     

                                                                           >> imshow(k1),

                                                                          效果就是实验效果1图中的空白,这说明在这个地方就已经是空白了

    实验效果1:

    image

     

     

                                                                             所以,我在想,是不是,先用灰度图像进行分析,看看conv效果如何

     

    >> u=P1(:,:,1);
    >> figure,imshow(u);
    >> info=imfinfo(u)
    ??? Error using ==> imfinfo
    Filename must be a string.

    >> k=conv2(u,l);
    Warning: CONV2 on values of class UINT8 is obsolete.
             Use CONV2(DOUBLE(A),DOUBLE(B)) or CONV2(SINGLE(A),SINGLE(B)) instead.
    > In uint8.conv2 at 11
    >> figure,imshow(k);
    >>

    image  image

    显然不是理想的目标

    >> imwrite(u,'fly_r.bmp','bmp');
    >> info=imfinfo('fly_r.bmp')

    info =

                  Filename: 'fly_r.bmp'
               FileModDate: '25-May-2009 16:18:16'
                  FileSize: 286518
                    Format: 'bmp'
             FormatVersion: [1x33 char]
                     Width: 640
                    Height: 446
                  BitDepth: 8
                 ColorType: 'indexed'
           FormatSignature: 'BM'
        NumColormapEntries: 256
                  Colormap: [256x3 double]
                   RedMask: []
                 GreenMask: []
                  BlueMask: []
           ImageDataOffset: 1078
          BitmapHeaderSize: 40
                 NumPlanes: 1
           CompressionType: 'none'
                BitmapSize: 285440
            HorzResolution: 0
            VertResolution: 0
             NumColorsUsed: 256
        NumImportantColors: 0

    >>

    我调用了一个函数,mat2gray,得到了一个相对而言满意的效果,不过,不知道这样是否有意义并且对一开始的操作的空白结果的原因仍然不解

    >> T1=mat2gray(P1(:,:,1));
    >> k1=conv2(T1,l);
    >> T2=mat2gray(P1(:,:,2));
    >> k2=conv2(T2,l);
    >> T3=mat2gray(P1(:,:,3));
    >> k3=conv2(T3,l);
    >> k(:,:,1)=k1;
    >> k(:,:,2)=k2;
    >> k(:,:,3)=k3;
    >> figure,imshow(k);

    >> figure,imshow(P1);

    image

    注意到处理后的图像边框有一条明显的黑色痕迹

     

    image

     

    >> figure,imshow(P1);
    >> U1=mat2gray(P2(:,:,1));
    >> d1=conv2(U1,l);
    >> U2=mat2gray(P2(:,:,2));
    >> d2=conv2(U2,l);
    >> U3=mat2gray(P2(:,:,3));
    >>  d3=conv2(U3,l);
    >> d(:,:,1)=d1;
    >> d(:,:,2)=d2;
    >> d(:,:,3)=d3;

    >> figure,imshow(P2);
    >> figure,imshow(d);

    image 

     

    image

     

     

     

     

     

     

     

    转载于:https://www.cnblogs.com/fleetwgx/archive/2009/05/25/1488826.html

    展开全文
  • 彩色基础 颜色是人类认知系统对物体表面、光照及视觉环境的综合反映,缺少其中任意一个,都不会有颜色感觉。 人类和其他动物感知物体颜色是由物体反射光的性质(频率和波长)决定的。 白色:物体反射的光在所有可见...

    一、彩色基础

    颜色是人类认知系统对物体表面、光照及视觉环境的综合反映,缺少其中任意一个,都不会有颜色感觉。
    人类和其他动物感知物体颜色是由物体反射光的性质(频率和波长)决定的。
    白色:物体反射的光在所有可见光波长范围是平衡的。
    某种颜色:一个物体反射有限的可见光谱。(如,绿色物体反射具有500~570nm范围内的主要波长的光,吸收其他波长的多数能量)

    1.1 彩色

    彩色是物体的一种属性。依赖于3个方面的因素:

    • 光源:照射光的谱性质或谱能量分布
    • 物体:被照射物体的反射性质
    • 成像接收器(眼睛或成像传感器):光谱能量吸收性质

    描述彩色光源质量的三个量:

    • 辐射:光源流出的能量总量,用瓦特(W)度量。
    • 光强:观察者从光源感知的能量总和,用流明度量。
    • 亮度:是一个主观描绘子,是难以度量的。

    1.2 三原色

    人类对蓝色最不敏感。
    光和颜料的原色及二次色
    在这里插入图片描述
    区别不同颜色特性的是:亮度(无色的强度)、色调(观察者感知的主要颜色)、饱和度(相对纯净度,或一个色调混合的白光量,纯色谱是全饱和的)。饱和度与所加白光的数量成反比。纯色是全饱和的。
    色调和饱和度一起成为
    色度

    1.3 颜色表示

    形成任何特殊彩色的红、绿、蓝的数量称为三色值。分别用X,Y,Z表示。故一种颜色可由其三色值系数定义:
    在这里插入图片描述
    显然: x + y + z = 1
    CIE色度图
    该图以x(红)和y(绿)的函数表示颜色的组成。
    在这里插入图片描述
    最外围的轮廓对应着所有的可见光谱色,在其边缘上标出了对应的波长值(nm),该轮廓内的区域包含了所有的可见颜色。如果将色度图中的三色点两两连接成一个三角形,则该三角形内的任意颜色都可以由这3种原色的不同混合产生。
    由R、G、B3种标准原色所连成的三角形并不能涵盖整个可见颜色区域,即仅使用三原色并不能得到所有的可见颜色。图中三角形区域对应着典型的RGB监视器所能够产生的颜色范围,称为彩色全域,而三角形内不规则区域表示高质量的彩色打印设备的彩色域。

    二、彩色模型

    彩色模型(也称为彩色空间或彩色系统)的目的是,在某些标准下用通用可以接受的方式方便地对彩色加以说明。

    2.1 RGB模型(相加混色模型,主要用于显示)

    RGB模型是工业界的一种颜色标准,该标准几乎包括了人类视觉所能感知的所有颜色,是目前应用最广的颜色模型之一。
    在这里插入图片描述
    图中RGB原色值位于3个定顶点上,二次色青色、深红色和黄色位于另外3顶点上,黑色位于原点处,白色位于离原点最远的顶点上。灰度(RGB的值相等)沿着连接着两点的直线从黑色延伸到白色;不同的颜色处在立方体上或其内部,可用1个三维向量来表示。
    每个像素的比特数称为像素深度,若每幅红、绿、蓝图像都是一幅8比特图像,则每个RGB彩色像素有24比特深度。全彩色图像通常用来表示一种24比特的RGB图像,颜色总数为(28)3 = 16777216。
    但实际使用的只有216种稳定色。

    实现
    令 PR 、 PG 和 PB 分别表示三幅 RGB 分量图像。则RGB 图像就是利用 cat(级联)操作将这些分量图像组合而成的彩色图像:

    RGB_iamge = cat(3,PR,PG,PB); % 将PR、PG、PB 3个矩阵在第三个维度上进行级联
    

    在进行cat操作时,图像应按照R、G、B的顺序放置。
    cat(dim,A1,A2……)沿着由dim指定的方式级联 (它们必须是相同尺寸)。
    dim=1,垂直安排;dim=2,水平安排; 如果dim=3,按照三维方式堆叠。
    分量提取
    若RGB_image表示一幅RGB图像,则可以使用如下命令提取3个分量:

    PR = RGB_image(:,:,1);
    PG = RGB_image(:,:,2);
    PB = RGB_image(:,:,3);
    

    完整代码

    RGB_image = imread('C:\Users\win\Desktop\sunflower.jpg');
    PR = RGB_image(:,:,1);
    PG = RGB_image(:,:,2);
    PB = RGB_image(:,:,3);
    
    figure(1);
    subplot(2,2,1);
    imshow(RGB_image);
    title('原图');
    
    subplot(2,2,2);
    imshow(PR);
    title('红色分量');
    
    subplot(2,2,3);
    imshow(PG);
    title('绿色分量');
    
    subplot(2,2,4);
    imshow(PB);
    title('蓝色分量');
    
    % 使用cat函数进行级联
    RGB_red = cat(3,PR,zeros(size(PR)),zeros(size(PR)));
    RGB_green = cat(3,zeros(size(PG)),PG,zeros(size(PG)));
    RGB_blue = cat(3,zeros(size(PB)),zeros(size(PB)),PB);
    
    figure('Name','使用级联函数');
    subplot(2,2,1);
    imshow(RGB_image);
    title('原图');
    
    subplot(2,2,2);
    imshow(RGB_red);
    title('红色分量图');
    
    subplot(2,2,3);
    imshow(RGB_green);
    title('绿色分量图');
    
    subplot(2,2,4);
    imshow(RGB_blue);
    title('蓝色分量图');
    

    实验结果
    在这里插入图片描述
    在这里插入图片描述
    自然界中任何一种色光都可由R、G、B三原色按不同的比例相加混合而成。当三个分量都为0时,混合成黑色;当三个分量都为1时,混合成白色;当三个分量都相等时,混合成灰度图。

    2.2 CMY和CMYK彩色模型(相减混色模型)

    CMY描述的是颜料的三原色(青色、深红色、黄色)。色彩的显示不是直接来自于光纤的色彩,而是光线被物体吸收掉一部分之后反射回来的剩余光线所产生的。当光纤都被吸收时,呈现黑色;当光线都被反射时,呈现白色。
    CMY适用于彩色打印机和复印机。要求输入CMY数据或在内部将RGB转换为CMY。
    在这里插入图片描述
    假定RGB值都归一化到了[0,1]区间。
    如上式所示,涂有青色颜料的表面所反射的光中不包含红色。其余的两个类似。
    等量的青色、深红色和黄色可以产生黑色。但实际上,基于打印目的组合这几种颜色所产生的黑色不纯,为了生成真正的黑色,加入了第四种颜色——黑色,即CMYK模型

    RGB图像和CMY之间的转换的实现:
    通过imcomplement()函数实现

    rgb = imread('C:\Users\win\Desktop\sunflower.jpg');
    cmy = imcomplement(rgb);
    figure();
    subplot(1,2,1)
    imshow(rgb);
    title('rgb图像');
    
    subplot(1,2,2);
    imshow(cmy);
    title('cmy图像');
    

    实验结果:
    在这里插入图片描述

    2.3 HSI彩色模型

    从人的视觉系统出发,直接使用颜色三要素:色调(Hue)、饱和度(Saturation)、亮度(Intensity)来描述颜色。

    • 色调。是彩色最重要的属性,决定颜色的本质,由物体反射光线中占优势的波长来决定,不同波长产生不同的颜色感觉。即观察者感觉到的主要颜色。
    • 饱和度。指颜色的深浅和浓淡程度,饱和度越高,颜色越深。饱和度的深浅和白色的比例有关,白色比例越多,饱和度越低。
    • 亮度。人眼感觉光的明暗程度。光的能量越大,亮度越大。

    色调和饱和度统称为色度。
    在这里插入图片描述
    强调:与红轴的夹角为色调,向量的长度是饱和度。色度平面以什么样的形状出现,是无关紧要的。
    HSI彩色空间可用如下的空间模型来表示。中间的横截面就是色度平面,上下平移色度平面即亮度的表示。
    在这里插入图片描述
    色调H的取值范围:0~360;饱和度的取值范围:0-1;亮度的取值范围:0-1
    HSI空间中亮度和色度具有可分离特性,使得图像处理和及其视觉中大量灰度处理算法都可在HSI彩色空间中方便使用。

    RGB到HSI的彩色转换及实现
    给定一幅RGB彩色格式图像,其对应的HSI空间的分量表示如下:
    在这里插入图片描述
    假定RGB值都归一化到了[0,1]区间。
    实现
    rgb2hsi()函数

    function hsi = rgb2hsi(rgb)
    % 功能:将一幅RGB图像转换为HSI图像
    % 输入图像是M*N*3的矩阵
    % 假如所有的RGB分量是均衡的,那么HSI转换就是未定义的
    % 输入图像可能是double([0,1]),unit8或unit16
    % 输出图像是double的
    
    % 抽取rgb图像分量
    rgb = im2double(rgb);
    r = rgb(:,:,1);
    g = rgb(:,:,2);
    b = rgb(:,:,3);
    
    % 进行转换
    temp1 = 0.5 * ((r - g) + (r - b));
    temp2 = sqrt((r - g).^2 + (r - b).*(g-b));
    theta = acos(temp1./(temp2 + eps)); % acos()为arccos函数的实现,给除数加一个很小的数eps。是防止除数为0
    H = theta; 
    H(b > g) = 2*pi - H(b > g); 
    H = H/(2*pi); 
    
    temp3 = min(min(r,g),b);   % min()只支持两个数的比较
    temp4 = r + g + b;
    if(temp4 == 0)
        temp4 = eps;  % 防止除数为零
    end
    S = 1 - 3.* (temp3./ temp4);
    
    I = (r + g + b)./ 3;
    
    hsi = cat(3,H,S,I);
    end
    

    实验结果:
    在这里插入图片描述
    HSI到RGB的彩色转换及实现
    RG扇区(0<= H < 120):当H的值在该扇区中时,RGB分量由下式给出:
    在这里插入图片描述
    GB扇区(120<= H < 240):当H的值在该扇区中时,首先从H中减去120,即H = H - 120,然后RGB分量为:
    在这里插入图片描述
    BR扇区(240<= H < 360):当H的值在该扇区中时,则从H中减去240,即H = H - 240,则RGB分量为:
    在这里插入图片描述
    hsi2rgb()函数

    function rgb = hsi2rgb(hsi)
    % 功能:将一幅HSI图像转换为RGB图像
    % 其中hsi的三个分量都是归一化后的
    
    % 抽取图像分量
    hsi = im2double(hsi);
    H = hsi(:,:,1) * 2 * pi;
    S = hsi(:,:,2);
    I = hsi(:,:,3);
    
    % 进行转换
    R = zeros(size(hsi,1),size(hsi,2));
    G = zeros(size(hsi,1),size(hsi,2));
    B = zeros(size(hsi,1),size(hsi,2));
    
    % RG扇形(0 <= H < 2*pi/3)
    idx = find((0 <= H) & (H < 2*pi/3));  % 寻找在RG扇区的H
    B(idx) = I(idx).*(1 - S(idx));
    R(idx) = I(idx).*(1 + S(idx).*cos(H(idx))./cos(pi/3 - H(idx)));
    G(idx) = 3*I(idx) - (R(idx) + B(idx));
    
    % GB扇区(2*pi/3 <= H < 4*pi/3)
    idx = find((2*pi/3 <= H) & (H < 4*pi/3));
    R(idx) = I(idx) .* (1 - S(idx));
    G(idx) = I(idx) .* (1 + S(idx).*cos(H(idx) - 2*pi/3)./cos(pi - H(idx)));
    B(idx) = 3 * I(idx) - (R(idx) + G(idx));
    
    % BR扇区(4*pi/3 <= H <= 2*pi)
    idx = find((4*pi/3 <= H) & (H <= 2*pi));  % 注意这里要算上2*pi这个点,否则会显示全黑图像
    G(idx) = I(idx) .* (1 - S(idx));
    B(idx) = I(idx) .* (1 + S(idx).*cos(H(idx) - 4*pi/3)./ cos(5*pi/3 - H(idx)));
    R(idx) = 3*I(idx) - (G(idx) + B(idx));
    
    % 将R、G、B分量级联成以一幅RGB图像
    rgb = cat(3,R,G,B);
    rgb = max(min(rgb,1),0);
    end
    

    测试

    rgb = imread('C:\Users\win\Desktop\sunflower.jpg');
    hsi = rgb2hsi(rgb);
    rgb1 = hsi2rgb(hsi);
    figure();
    subplot(1,3,1);
    imshow(rgb);
    title('原图');
    
    subplot(1,3,2);
    imshow(hsi);
    title('RGB转HSI图像');
    
    subplot(1,3,3);
    imshow(rgb1);
    title('HSI转RGB图像');
    

    实验结果
    在这里插入图片描述

    2.4 其他彩色模型

    HSV模型
    是人们用来从调色板或颜色轮中挑选颜色(例如颜料、墨水等)所采用的的彩色系统之一。HSV表示色调、饱和度和数值。该系统比RGB更接近于人们的经验和对彩色的感知。
    matlab中的实现:rgb2hsv()函数、hsv2rgb()函数
    YIQ彩色模型
    Y指亮度(Brightness),即灰度值,可提供黑白电视机的所有影像信息;I和Q指色调和饱和度(存储彩色信息)。是北美NTSC彩色系统,主要用于美国的电视系统。
    matlab中的实现:rgb2ntsc()函数、ntsc2rgb()函数
    YUV彩色模型
    Y指亮度,即灰度值,可提供黑白电视的所有影像信息;U和V代表色差,是构成彩色的两个分量。一个主要优势是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那图像就是黑白灰度图。被用于的电视系统(属于PAL系统)。
    matlab中的实现:rgb2yuv()函数、yuv2rgb()函数
    YCbCr彩色模型
    Y指亮度,即灰度值,与YUV中的Y相同,Cb和Cr有U和V调整得到。JPEG采用的彩色空间。
    matlab中的实现:rgb2ycbcr()函数、ycbcr2rgb()函数

    三、彩色图像处理基础

    3.1 伪彩色图像处理

    伪彩色图像处理是指基于一种指定的规则对灰度值赋以颜色的处理。主要应用是对单幅图像或序列图像中灰度级事件的人类可视化和解释。

    灰度分层
    灰度分层和彩色编码技术是伪彩色图像处理中最简单的例子之一。
    在这里插入图片描述
    图中li表示灰度图像的某一个灰度级,li将灰度图像分成两部分,给两部分分别赋予不同的彩色。
    在这里插入图片描述
    最简单的是将整个灰度分成两个区间,当使用更多的灰度级时,灰度级和颜色的映射函数将呈现阶梯式。
    灰度到彩色的变换
    对任何输入像素的灰度执行3个独立的变换,然后将这3个变换结果分别送入彩色电视监视器的红绿蓝通道。用这种方法产生一幅合成图像,合成图像的彩色内容由变换函数(可以是平滑的非线性函数)的特性调制。
    注意:是在图像亮度值上进行的变化,和位置无关。
    一幅单色图像处理
    在这里插入图片描述
    多幅单色图像处理
    在这里插入图片描述

    3.2 全彩色图像处理

    处理方法分为两大类:

    • 分别处理每一幅图像的分量,然后由分别处理过的分量图像形成一幅处理过的合成彩色图像。对每个分量的处理技术可以应用到对灰度图像处理的技术上,但这种通道式的独立处理技术忽略了通道间的相互影响。
    • 直接处理彩色像素(向量)。全彩色图像至少有3个分量,所以彩色像素实际上是向量。

    如,在RGB系统中。令c表示RGB彩色空间中的一个任意向量:
    在这里插入图片描述
    c的分量仅是一幅彩色图像在一点处的RGB分量。
    彩色分量是坐标(x,y)的函数,表示为:
    在这里插入图片描述
    对大小为M*N的图像,有MN个这样的向量c(x,y)。
    为了使每种彩色分量的处理和基于向量的处理达到同样的效果,需要满足以下两个条件:

    • 处理必须对向量和标量都可用;
    • 对向量的每个分量的操作对于其他分量必须是独立的。

    3.3 彩色变换

    涉及在单一彩色模型下,以处理彩色图像的分量为基础。
    公式
    与之前的灰度变换技术类似,彩色变换的模型如下:
    在这里插入图片描述
    f(x,y)为彩色输入图像,g(x,y)为变换后的彩色输出图像,T为空间域上的算子。其中的像素值是从彩色空间选择的、用来表示图像的彩色控件的3元组或4元组。
    在这里插入图片描述
    上式也表示彩色变换。ri和si是f(x,y)和g(x,y)在任何点处彩色分量的变量,n是彩色分量数,其取决于所用的彩色空间,如RGB空间,n = 3;CMYK空间,n = 4。

    补色

    补色:彩色环上,与色调直接相对的另一端。
    在这里插入图片描述
    补色对于增强嵌在彩色图像暗区的细节很有用,特别是区域在大小上占优势时。
    在RGB中做反转是一分量对一分量的,但是,在HSI中,反转图的S分量不能从原图的S分量单独获得。

    彩色补偿

    有些图像处理任务的目标是根据颜色分离出不同类型的物体。但由于常用的彩色成像设备具有较宽且相互覆盖的光谱敏感区,加之待拍摄图像的染色是变化的,所以很难再3个分量图中将物体分离出来,这种现象称为颜色扩散。彩色补偿的作用就是通过不同的颜色通道提取不同的目标物
    函数:

    function S = compensate(im)
    [m,n,p]=size(im);
    [h1,k1]=min(255-im(:,:,1)+im(:,:,2)+im(:,:,3));
    [j1,minx]=min(h1);
    i1=k1(j1);%提取图像中最接近红色的点,其在im中的坐标为i1,j1
    r1=im(i1,j1,1);
    g1=im(i1,j1,2);
    b1=im(i1,j1,3);
    R=0.30*r1+0.59*g1+0.11*b1;
    
    [h2,k2]=min(255-im(:,:,2)+im(:,:,1)+im(:,:,3));
    [j2,minx]=min(h2);
    i2=k2(j2);%提取图像中最接近绿色的点,其在im中的坐标为i2,j2
    r2=im(i2,j2,1);
    g2=im(i2,j2,2);
    b2=im(i2,j2,3);
    G=0.30*r2+0.59*g2+0.11*b2;
    
    [h3,k3]=min(255-im(:,:,3)+im(:,:,1)+im(:,:,2));
    [j3,minx]=min(h3);
    i3=k3(j3);%提取图像中最接近绿色的点,其在im中的坐标为i2,j2
    r3=im(i3,j3,1);
    g3=im(i3,j3,2);
    b3=im(i3,j3,3);
    B=0.30*r3+0.59*g3+0.11*b3;
    
    A1=[r1 r2 r3
         g1 g2 g3
         b1 b2 b3];
    A2=[R 0 0
         0 G 0
         0 0 B];
    C=A1*inv(A2);
    
    for i=1:m
        for j=1:n
            imR=im(i,j,1);
            imG=im(i,j,2);
            imB=im(i,j,3);
            temp=inv(C)*[imR;imG;imB];
            S(i,j,1)=temp(1);
            S(i,j,2)=temp(2);
            S(i,j,3)=temp(3);
        end
    end
    S=uint8(S);
    end
    

    调用函数即可,实验结果如下:
    在这里插入图片描述

    彩色分层

    突出图像中某个特定彩色区域对从其周围分离出目标物体很有用。
    对彩色图像进行分层的简单方法之一是,把某些感兴趣区域之外的彩色映射为不突出的中性颜色。

    色调和彩色校正

    背景:在图像形成、运输、显示过程中,存在非线性可能造成颜色的不平衡。
    CIE L*a*b*模型。其中L*a*b*分量计算如下:
    在这里插入图片描述
    其中,XW、YW、ZW是参考白色三激励值,即CIE标准D65照度下的一种完美的漫反射白色。
    L*a*b*系统是一种优秀的亮度(由L*表示)和彩色(a*表示红减绿,b*表示绿减蓝)分离器。在图像操作(色调和对比度编辑)和图像压缩方面很有用。
    校准图像成像系统的主要意义是,它允许交互地和独立地校正色调和色彩的不平衡,即按两个顺序操作。

    彩色平衡:

    function new = color_balance(im)
    % 彩色平衡函数
    [m,n,p]=size(im);
    F1=im(1,1,:);
    F2=im(1,2,:);
    F1_(1,1,1)=F1(:,:,2);
    F1_(1,1,2)=F1(:,:,2);
    F1_(1,1,3)=F1(:,:,2);
    F2_(1,1,1)=F1(:,:,2);
    F2_(1,1,2)=F1(:,:,2);
    F2_(1,1,3)=F1(:,:,2);
    K1=(F1_(1,1,1)-F2_(1,1,1))/(F1(1,1,1)-F2(1,1,1));
    K2=F1_(1,1,1)-K1*F1(1,1,1);
    L1=(F1_(1,1,3)-F2_(1,1,3))/(F1(1,1,3)-F2(1,1,3));
    L2=F1_(1,1,3)-L1*F1(1,1,3);
    for i=1:m
         for j=1:n
             new(i,j,1)=K1*im(i,j,1)+K2;
             new(i,j,2)=im(i,j,2);
             new(i,j,3)=L1*im(i,j,3)+L2;
         end
    end
    im=uint8(im);
    new=uint8(new);
    

    直方图处理

    直方图均衡化基本思想是对图像中像素个数多的灰度级进行扩展,而对图像中像素个数少的灰度进行压缩,从而扩展像素的取值范围,提高对比度和灰度色调的变化,使图像更加清晰。
    直方图均衡化一来可以提高图像的对比度,二来可以把图像变换成像素值是几乎均匀分布的图像。
    HSI彩色空间是适合该类方法的理想空间。

    四、彩色图像处理

    4.1 平滑和锐化

    平滑
    和灰度图像平滑类似。
    在一幅RGB彩色图像中,令Sxy表示中心位于(x,y)的邻域定义的一组坐标。在该邻域中RGB分量的向量平均值为:
    在这里插入图片描述
    满足3.2节及向量相加的性质,故有:
    在这里插入图片描述
    将该向量的分量视为几幅标量图像,每幅标量图像可以通过灰度级邻域处理,单独平滑RGB图像的每个分量。
    结论:邻域平均平滑可以在每个彩色平面的基础上进行,其结果与使用RGB彩色向量执行平均是相同的。
    实现:

    如第三章描述的那样,线性空间滤波器是用函数fspecial()产生的,然后再使用函数imfilter执行滤波。

    fc_filtered = imfilter(fc,w);
    

    w为平滑滤波器。
    有两种方法对图像进行平滑处理

    • 直接对RGB图像进行平滑滤波
    • 对RGB图像转换到HSI空间,对I分量进行平滑滤波后,再将处理后的HSI图像转换回RGB图像。

    因为HSI彩色模型的一个重要优点是,强度和彩色信息是独立的,使得其适合于许多灰度处理技术,有时只对I分量进行平滑处理可能效果更好。

    两种平滑方法的差别会随着滤波器尺寸的增加而变得更加显著。

    img = imread('C:\Users\win\Desktop\paint_brushes.jpg');
    hsi = rgb2hsi(img);
    H = hsi(:,:,1);
    S = hsi(:,:,2);
    I = hsi(:,:,3);
    % 生成滤波器
    w = fspecial('average',5);
    
    %对RGB图像直接进行平滑滤波
    img_filtered = imfilter(img,w.'replicate');
    
    %对HSI图像中的I分量进行平滑滤波
    I_filtered = imfilter(I,w,'replicate');
    HSI = cat(3,H,S,I_filtered);
    hsi_filtered = hsi2rgb(HSI);
    
    figure();
    subplot(1,3,1);
    imshow(img);
    title('RGB原图');
    
    subplot(1,3,2);
    imshow(img_filtered);
    title('对RGB图像平滑');
    
    subplot(1,3,3);
    imshow(hsi_filtered);
    title('对HSI中的I分量进行平滑');
    

    实验结果:
    在这里插入图片描述
    锐化
    使用拉普拉斯算子进行图像锐化。
    在RGB彩色模型中,向量c的拉普拉斯变换为:
    在这里插入图片描述
    故可通过计算每幅图像的拉普拉斯变换来计算全彩色图像的拉普拉斯变换。

    img = imread('C:\Users\win\Desktop\fence-climbing.jpg');
    hsi = rgb2hsi(img);
    H = hsi(:,:,1);
    S = hsi(:,:,2);
    I = hsi(:,:,3);
    % 生成滤波器
    w = fspecial('laplacian');
    %对RGB图像直接进行锐化滤波
    temp = imfilter(img,w,'replicate');  % 得到的只是图像的对比度高的轮廓信息
    img_filtered = img + temp;  % 将两者叠加,即起到锐化的作用
    %对HSI图像中的I分量进行锐化滤波
    temp = imfilter(I,w);
    I_filtered = I + temp;
    HSI = cat(3,H,S,I_filtered);
    hsi_filtered = hsi2rgb(HSI);
    
    figure();
    subplot(1,3,1);
    imshow(img);
    title('RGB原图');
    
    subplot(1,3,2);
    imshow(img_filtered);
    title('对RGB图像锐化');
    
    subplot(1,3,3);
    imshow(hsi_filtered);
    title('对HSI中的I分量进行锐化');
    

    实验结果:
    在这里插入图片描述
    可以看出两种锐化方法的差异还是挺大的。

    4.2 基于彩色的图像分割

    分割是把一幅图像分成多个区域的处理。
    HSI彩色空间的分割
    如果我们希望以彩色为基础来分割一幅图像,则可在HSI空间中,利用色调不同进行分割,将饱和度作为一个模板。彩色图像分割中不常使用亮度图像,因为它不携带彩色信息。

    RGB向量空间中的分割
    分割用RGB向量能得到更好的结果。
    假定我们的目的是在RGB图像中分割一个特定染色区域的物体。给定一组感兴趣的有代表性彩色的彩色样点集,可得到我们希望分割的颜色的“平均”估计。用RGB向量a来表示这个平均彩色。分割的目的是将给定图像中的每个RGB像素按照是否具有指定范围内的颜色来划分。最简单的相似性度量是欧式距离
    z表示RGB空间中的任意一点。若za之间的距离小于特定的阈值D0,则称它们相似。z和a间的欧式距离如下:
    在这里插入图片描述
    其中下标R、G、B表示向量a和z的RGB分量。
    上式的推广是形如下式的距离度量:
    在这里插入图片描述
    其中C表示我们希望分割的有代表性颜色的样本的协方差矩阵。
    分割过程通过函数colorseg()实现。具体语法如下:
    s = colorseg(method,f,T,parameters)
    method:euclidean(欧氏距离)、mahalanobis(马氏距离);
    f:待分割的RGB图像;
    T(D0):上述提及的阈值
    参数:若选择的是‘euclidean’,则输入参数是a,若选择的是‘mahalanobis’,则输入参数是a和C。a即上述表示平均色彩的向量a,它的形式不是行就是列,C是3*3的协方差矩阵。

    彩色边缘检测
    边缘检测对图像分割来说是一个重要工具。本节是以单一图像为基础计算边缘的,而不是直接在彩色向量空间中计算边缘。
    回忆可知,对于标量函数f(x,y),梯度是坐标(x,y)处指向f的最大变化理念方向的向量。
    r、g、b是沿RGB彩色空间的R、G、B轴的单位向量,并定义向量
    在这里插入图片描述
    令gxx,gyy和gxy表示上述向量的点积:
    在这里插入图片描述
    其中R、G和B以及g都是x和y的函数。c(x,y)的最大变化率方向的角度如下:
    在这里插入图片描述
    点(x,y)处的变化率的值如下:
    在这里插入图片描述
    :θ(x,y)和Fθ(x,y)是与输入图像大小相同的图像。θ(x,y)的元素是在计算梯度后每个点的角度,Fθ(x,y)是梯度图像。
    实现函数:colorgrad(),具体语法如下:
    [VG,A,PPG] = colorgrad(f,T)
    f:一幅RGB图像
    T:范围[0,1]内的一个可选阈值(默认为0)
    VG:RGB向量梯度Fθ(x,y)
    A:以弧度计的角度,用于实现RGB图像
    PPG:是对单独彩色平面(为比较目的而产生)的二维梯度求和形式的梯度。
    当T在参数列表中时,输出VG和PPG通过函数colorgrad归一化到范围[0,1]内,并且它们被阈值处理,以便其值小于或等于T时VG(x,y) = 0,其他情况下VG(x,y) = VG(x,y)。PPG的情况与此类似;当T不在参数列表中时,将T设置为0.

    f=imread('C:\Users\win\Desktop\sunflower.jpg');
    [VG,A,PPG]=colorgrad(f,0.2); %VG为向量梯度,A为向量角度,PPG为计算每一维梯度后合成  
    subplot(2, 2, 1), imshow(f);title('原图像');
    subplot(2, 2, 2), imshow(VG);title('T=0.2,在rgb空间计算梯度图像(VG)');
    subplot(2, 2, 3), imshow(PPG);title('T=0.2,分别在rgb计算梯度然后相加(PPG)');
    subplot(2, 2, 4), imshow(abs(VG-PPG),[]);title('T=0.2,2种梯度差值的绝对值'); 
    

    实验结果:
    在这里插入图片描述
    T值越小能够检测的边线越多,越容易从图像中挑出不相关信息;T越大,会丢失细的或者短的线条,当T=0时检测的边线最多,当T=1时,几乎检测不到边线,图像为纯黑色。VG和PPG两种计算彩色图像梯度的方法,所产生的效果也不同;VG效果要好一点,边线更多;两种梯度的绝对差检测的边线最少。

    4.3 彩色图像中的噪声

    彩色图像的噪声内容在每个彩色通道中具有相同的特性,但噪声对不同彩色通道锁造成的影响不同。一种可能是个别通道的电子学故障。然而,不同的噪声水平更可能是由每个彩色通道的相对照射强度的差异造成的。

    4.4 彩色图像压缩

    描述彩色所要求的比特数比描述灰度级所要求的比特数大3~4倍,所以数据压缩在存储和传输彩色图像中很重要。
    压缩:减小或消除冗余和/或不相干数据的处理。

    展开全文
  • 图像处理(七)给图像添加噪声

    万次阅读 2014-05-28 10:49:24
    图像中的噪声就是图像中的杂点或者干扰成分,噪声主要产生于图像的获取和传输过程中。噪声一般分为分为加性噪声和乘性噪声。   其中f(x,y)表示图像,g(x,y)表示没有噪声图像部分,q表示噪声。这两种噪声可以...

        图像中的噪声就是图像中的杂点或者干扰成分,噪声主要产生于图像的获取和传输过程中。噪声一般分为分为加性噪声和乘性噪声。

                                       

    其中f(x,y)表示图像,g(x,y)表示没有噪声的图像部分,q表示噪声。这两种噪声可以通过取对数和指数相互转换:

                                       

    常见的几种噪声有,高斯噪声、瑞利噪声、指数噪声和椒盐噪声。除椒盐噪声以外其他三种均属于加性噪声。椒盐噪声既不属于加性噪声也不属于乘性噪声。

    噪声是有噪声分量灰度值的统计特性来描述的,它们可以被认为是由概率密度函数(PDF)表示的随机变量,下面是几种噪声的概率密度函数。

    高斯随机变量z的概率密度函数为:

                                        

    μ表示z的期望值,σ表示z的方差。

    瑞利噪声的概率密度函数为:

                                        

    它的均值和方差分别为a+√(πb)/4和b(4-π)/4。

    指数分布噪声的概率密度函数为:

                                        

    它的均值和方差分别为1/a和1/a2,其中a>0。

    椒盐噪声又称双击脉冲噪声,它类似于随机分布在图像上的胡椒(黑色)和盐粒(白色)。它的概率密度函数为:

                                       

    对于一个8位深度图像,a=0,b=255.

    下面仅将添加高斯噪声和椒盐噪声的代码贴出:

    /// <summary>
        /// 给图像添加噪声
        /// </summary>
        /// <param name="srcBmp">原始图像</param>
        /// <param name="noiseType">噪声类型</param>
        /// <param name="para">噪声类型参数(2个)</param>
        /// <param name="dstBmp">目标图像</param>
        /// <returns>处理成功 true 失败 false</returns>
        public static bool AddNoise(Bitmap srcBmp, NoiseType noiseType, double[] para, out Bitmap dstBmp) {//NoiseType 为自定义噪声枚举类型
            dstBmp = null;
            if (srcBmp == null) { return false; }
            dstBmp = new Bitmap(srcBmp);
            BitmapData bmpData = dstBmp.LockBits(new Rectangle(0, 0, dstBmp.Width, dstBmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
            Random r1 = new Random(unchecked((int)DateTime.Now.Ticks));
            Random r2 = new Random(~unchecked((int)DateTime.Now.Ticks));
            double temp, tempR, tempG, tempB, v1, v2;
    
            unsafe {
                byte* ptr = (byte*)bmpData.Scan0;
                switch (noiseType) {
                    case NoiseType.GAUSSIAN://高斯噪声para[0]为μ  para[1]为σ
                        for (int i = 0; i < bmpData.Height; i++) {
                            for (int j = 0; j < bmpData.Width; j++) {
                                do {
                                    v1 = r1.NextDouble();
                                } while (v1 <= 0.00000000001);
                                v2 = r2.NextDouble();
                                //应用雅克比变换直接生成正态分布
                                temp = Math.Sqrt(-2 * Math.Log(v1)) * Math.Cos(2 * Math.PI * v2) * para[1] + para[0];
                                tempB = temp + ptr[i * bmpData.Stride + j * 3];
                                tempG = temp + ptr[i * bmpData.Stride + j * 3 + 1];
                                tempR = temp + ptr[i * bmpData.Stride + j * 3 + 2];
                                tempB = tempB > 255 ? 255 : tempB; tempB = tempB < 0 ? 0 : tempB;
                                tempG = tempG > 255 ? 255 : tempG; tempG = tempG < 0 ? 0 : tempG;
                                tempR = tempR > 255 ? 255 : tempR; tempR = tempR < 0 ? 0 : tempR;
                                ptr[i * bmpData.Stride + j * 3] = (byte)tempB;
                                ptr[i * bmpData.Stride + j * 3 + 1] = (byte)tempG;
                                ptr[i * bmpData.Stride + j * 3 + 2] = (byte)tempR;
                            }
                        }
                        break;
                    case NoiseType.SALTPEPPER://椒盐噪声para[0]为椒含量 para[1]为盐含量
                        for (int i = 0; i < bmpData.Height; i++) {
                            for (int j = 0; j < bmpData.Width; j++) {
                                v1 = r1.NextDouble();
                                if (v1 <= para[0]) {
                                    temp = -500;
                                }
                                else {
                                    if (v1 >= 1 - para[1]) {
                                        temp = 500;
                                    }
                                    else {
                                        temp = 0;
                                    }
                                }
                                tempB = temp + ptr[i * bmpData.Stride + j * 3];
                                tempG = temp + ptr[i * bmpData.Stride + j * 3 + 1];
                                tempR = temp + ptr[i * bmpData.Stride + j * 3 + 2];
                                tempB = tempB > 255 ? 255 : tempB; tempB = tempB < 0 ? 0 : tempB;
                                tempG = tempG > 255 ? 255 : tempG; tempG = tempG < 0 ? 0 : tempG;
                                tempR = tempR > 255 ? 255 : tempR; tempR = tempR < 0 ? 0 : tempR;
                                ptr[i * bmpData.Stride + j * 3] = (byte)tempB;
                                ptr[i * bmpData.Stride + j * 3 + 1] = (byte)tempG;
                                ptr[i * bmpData.Stride + j * 3 + 2] = (byte)tempR;
                            }
                        }
                        break;
                    default:
                        break;
                }
            }
            dstBmp.UnlockBits(bmpData);
            return true;
        }
    效果图:


    展开全文
  • 数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结整理,欢迎大家一起学习交流...

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结整理,欢迎大家一起学习交流!
     专栏链接:数字图像处理学习笔记

     

    目录

    彩色图像基础

    彩色空间(也称彩色模型或彩色系统)

    彩色空间转换

    伪彩色图像处理

    强度分层技术

    灰度级到彩色的转换

    全彩色图像处理基础

    彩色变换

    彩色图像平滑

    彩色图像尖锐化(拉普拉斯微分)

    彩色分割(把一幅图像分成区域)

    RGB彩色空间分割


    彩色图像基础

    为什么要研究彩色图像处理?

    符合人类视觉特点

    • 人类可以辨别几千种颜色色调和亮度
    • 只能辨别几十种灰度层次

    有用的描绘子

    • 简化目标物的区分
    • 目标识别:根据目标的颜色特征

    彩色图像处理可分为:

    全彩色处理

    • 数码相机
    • 数码摄像机
    • 彩色扫描仪

    伪彩色处理

    • 对不同的灰度或灰度范围赋予不同的颜色

    当一束白光通过一个玻璃棱镜时,出现的光束 不是白光,而是由一端为紫色到另一端为红色的 连续彩色谱组成

    光特性是颜色科学的核心

    描述彩色光的3个基本量:

    • 辐射率:从光源流出能量的总量,用瓦特(W) 度量
    • 光强:观察者从光源接收的能量总和
    • 亮度:主观描绘子

    三原色 :红色(Red)、绿色(Green)、蓝色(Blue)

    原色相加可产生二次色

    • 深红色:红+蓝
    • 青    色:绿+蓝
    • 黄    色:红+绿

     

    彩色空间(也称彩色模型或彩色系统)

    RGB

    • CCD技术直接感知R,G,B三个分量
    • 是图像成像、显示、打印等设备的基础

    CMY(青、深红、黄)、CMYK (青、深红、 黄、黑)

    运用在大多数在纸上沉积彩色颜料的设备, 如彩色打印机和复印机

    CMYK

    • 打印中的主要颜色是黑色
    • 等量的CMY原色产生黑色,但不纯
    • 在CMY基础上,加入黑色,形成CMYK彩色 空间

    HSI(色调、饱和度、亮度)

    两个特点:

    • 分量与图像的彩色信息无关
    • H和S分量与人感受颜色的方式是紧密相连的

    将亮度(I)与色调(H)和饱和度(S)分开
    避免颜色受到光照明暗(I)等条件的干扰
    仅仅分析反映色彩本质的色调和饱和度
    广泛用于计算机视觉、图像检索和视频检索

    YIQ

    • Y指亮度(Brightness),即灰度值
    • I和Q指色调,描述色彩及饱和度
    • 用于彩色电视广播,被北美的电视系统 所采用(属于NTSC系统)
    • Y分量可提供黑白电视机的所有影像信息

    YUV

    • Y指亮度,与YIQ的Y相同
    • U和V也指色调,不同于YIQ的I和Q
    • 用于彩色电视广播,被欧洲的电视系统所采用(属于PAL系统)
    • Y分量也可提供黑白电视机的所有影像信息

    YCbCr 

    • Y指亮度,与YIQ和YUV的Y相同
    •  Cb和Cr由U和V调整得到
    • JPEG采用的彩色空间

    彩色空间转换

                    

                       
    RGB和CMY值都归一化到[0,1]

                        

                             

                               

                                  

                                    

    伪彩色图像处理

    什么叫伪彩色图像处理?

    • 也叫假彩色图像处理
    • 根据一定的准则对灰度值赋以彩色的处理
    • 区分:伪彩色图像、真彩色图像、单色图像

    为什么需要伪彩色图像处理?

    • 人类可以辨别上千种颜色和强度
    • 只能辨别二十几种灰度

    应用

    • 为人们观察和解释图像中的灰度目标

    怎样进行伪彩色图像处理?

    • 1.    强度分层技术
    • 2.    灰度级到彩色转换技术

    强度分层技术

    把一幅图像描述为三维函数(x,y,f(x,y))

    分层技术:放置平行于(x,y)坐标面的平面

    每一个平面在相交区域切割图像函数

    令[0,L-1]表示灰度级,使l0代表黑色(f(x,y)=0), lL-1代表白色(f(x,y)=L-1)。假设垂直于强度轴的P 个平面定义为量级l1,l2,…,lP。0<P<L-1,P个平面 将灰度级分为P+1个间隔,V1,V2,…,VP+1,则灰度级 到彩色的赋值关系:

                                     

    • ck  是与强度间隔 Vk
    • 第K级强度有关的颜色
    • Vk  是由在l=k-1和l=k分割平面定义的

    灰度级到彩色的转换

    • 对任何输入像素的灰度级执行3个独立变换
    • 3个变换结果分别送入彩色监视器的红、绿、 蓝三个通道
    •  产生一幅合成图像

    全彩色图像处理基础

    全彩色图像处理研究分为两大类:

    • 分别处理每一分量图像,然后,合成彩色图像
    • 直接对彩色像素处理:3个颜色分量表示像素 向量。令c代表RGB彩色空间中的任意向量

                        

    对大小为 M * N 的图像

                           

                          

    彩色变换

    彩色变换函数

                             

    补色

    补色:在如图所示的彩色环上,与一种色调直接 相对立的另一种色调称为补色

                    

    作用:增强嵌在彩色图像暗区的细节

    彩色图像平滑

    令Sxy表示在RGB彩色图像中定义一个中心在(x,y) 的邻域的坐标集,在该邻域中RGB分量的平均值为

                             

    彩色图像尖锐化(拉普拉斯微分)

    RGB彩色空间,分别计算每一分量图像的拉普拉斯变换

                                   

    彩色分割(把一幅图像分成区域)

    HSI彩色空间分割——直观

    • H色调图像方便描述彩色
    • S饱和度图像做模板分离感兴趣的特征区
    • 强度图像不携带彩色信息

    RGB彩色空间——直接

    RGB彩色空间分割

    令z代表RGB空间中的任意一点,a是分割 颜色样本集的平均颜色向量

                                             

    D0是距离阈值

     

    展开全文
  • 数字图像处理_彩色图像处理1. 实验目的2. 实验流程2.1 彩色图像基本操作2.2 伪彩色处理2.3 彩色图像平滑滤波2.4 RGB转HSI3. 实验代码3.1 彩色图像读取、显示与格式转换3.2 伪彩色变换3.3 彩色图像平滑滤波3.4 RGB...
  • 数字图像处理第六章数字图像处理---彩色图像处理(五) 彩色图像的空间滤波5.1 彩色图像的平滑处理5.2 彩色图像的锐化处理(六) 直接在 RGB 矢量空间中 处理6.1 使用梯度的彩色边缘检测6.2 在 RGB向量空间中分割...
  • 四、彩色图像处理基础 五、彩色图像处理 六、彩色图像的噪声 七、彩色图像的压缩 附加知识点 一、彩色基础 彩色定义:彩色是物体的一种属性,他依赖于一下三个方面的因素。 (1)光源——照射光的谱性质或谱...
  • 1.彩色基础与模型 彩色基础: 彩色模型: 1.RGB彩色模型 2.CMY和CMYK彩色模型 3.HSI彩色模型 彩色模型转换: 1.从RGB到HSI的彩色转换 2.从HSI大到RGB的彩色转换 ...
  • 本文介绍一种在灰度图像复原成彩色RGB图像方面的代表性工作:**《全局和局部图像的联合...另外基于图像处理的方法,如图像增强和图像复原,以及曾经很火的超分辨率算法。都是在不增加额外信息的前提下的实现方式。
  • 彩色图像处理

    千次阅读 2017-09-27 21:00:08
     人可以辨别几千种不同的颜色,但只能区分出几十种灰度级,这使得颜色在人工图像分析中显得特别重要。  颜色是一个强有力的描绘子,它常常可简化目标物的识别和提取。  视觉  人眼是锥状细胞对应于短(S)、中...
  • 数字图像处理——添加高斯噪声&椒盐噪声

    万次阅读 多人点赞 2017-07-31 12:35:04
    1.添加高斯噪声1.1 概率密度函数σ为z的标准差,z为均值,用E。1.2 生成高斯分布随机数序列方法由Marsaglia和Bray在1964年提出,C++版本如下: mu是均值,sigma是方差,X服从N(0,1)分布 double generateGaussianNoise...
  • 图像处理的基本步骤:图像获取、滤波与增强、图像复原、彩色图像处理、小波与分辨率处理、压缩、形态学处理、分割、表示与描述、目标识别、第二章 数字图像基础角膜、巩膜外壳、脉络膜、视网膜。视锥细胞亮视觉,视...
  • 图像增强处理技术一直是图像处理领域一类非常重要的基本图像处理技术.图像增强是采用一些技 术手段 ,有选择地突出图像中感兴趣的特征或抑制图像中某些不需要的特征,使之改善图像质量、 丰富信 息量 ,加强图像判读和...
  • 图像处理-图像添加高斯噪声并滤波

    千次阅读 2015-03-27 21:09:07
    题目:对含有高斯白噪声图像进行滤波 思考:先对图像添加高斯白噪声,在对图像进行中值滤波,高斯滤波,均值滤波,形态学滤波,以及闭运算后进行中值滤波操作。 实验结果如图: MATLAB代码如下: ...
  • 数字图像处理——基于Matlab

    万次阅读 多人点赞 2020-06-28 10:54:53
    (注:本文代码大部分可从《数字图像处理 第三版》中找到)使用软件:MATLAB R2018a学习前提:了解matlab的GUI界面的每个按钮参考资料:《数字图像处理 第三版》,CSDN博客使用初音图片P站画师uid:1589657。...
  • 图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的...
  • 1964年美国最新喷气推进实验室对航天探测器“徘徊者7号”发回的几千张月球照片进行图像处理,如几何矫正,灰度变换,去除噪声等成功绘制出了月球表面地图。 1972年在医学上英国EMI利用图像重建技术发明了CT。 20世纪...
  • 数字图像处理与Python实现笔记之空间滤波摘要绪论1 数字图像处理基础知识2 彩色图像处理初步3 空间滤波3.1 空间滤波基础3.1.1 空间滤波的机理3.1.2 空间滤波器模板3.2 平滑处理3.3 锐化处理3.4 混合空间增强3.5 小结...
  • 图像处理技术(一)图像处理基础知识

    千次阅读 多人点赞 2018-08-30 15:52:26
    图像处理的概念是对图像信息进行加工处理,以满足人的视觉心理和实际应用的需求。 模拟图像:连续图像,采用数字化(离散化)表示和数字技术处理之前的图像。 数字图像:由连续的模拟图像采样和量化而得的图像,...
1 2 3 4 5 ... 20
收藏数 9,125
精华内容 3,650
关键字:

图像处理 彩色噪声