图像处理 图片光滑_光滑图像边缘 matlab - CSDN
  • 图像处理图像的平滑与锐化

    万次阅读 2017-01-10 23:38:57
    图像处理图像的平滑与锐化 概念: 锐化就是通过增强高频分量来减少图象中的模糊,因此又称为高通滤波。锐化处理在增强图象边缘的同时增加了图象的噪声。 平滑与锐化相反,就是滤掉高频分量,从而达到减少图象...

    图像处理之图像的平滑与锐化

    概念:

    锐化就是通过增强高频分量来减少图象中的模糊,因此又称为高通滤波。锐化处理在增强图象边缘的同时增加了图象的噪声。
    平滑与锐化相反,就是滤掉高频分量,从而达到减少图象噪声,使图片变得有些模糊。

    一、灰度化

    灰度化,也就是黑白化,就是将图像进行黑白处理,使其失去色彩。而从像素点出发,就是使各个像素点的三种颜色分量R、G、B的值相同。

    常用的黑白化的方法有三种:

    • 第一种是最大值法(Maximum):

                       R=G=B=Max(R,G,B),这种方法处理后灰度图象的亮度会偏高,不建议采用。

    • 第二种就是平均值法(Average):

                       R=G=B=(R+G+B)/3,这种方法处理后灰度图象的亮度较柔和,本人就是采用的这种方法。

    • 第三种是加权平均值法(Weighted Average):

                       R=G=B=wr*R+wg*G+wb*B,wr、wg、wb分别为R、G、B的权值。

    鉴于本人只使用了第二种,所以就先贴上第二种的代码:

    src=imread('background.bmp');
    [m,n,channel]=size(src);
    desc=zeros(m,n);
    desc=double(desc);
    for i=1:m
        for j=1:n
            for k=1:channel
                desc(i,j)=desc(i,j)+src(i,j,k);
            end
            desc(i,j)=desc(i,j)/3;
        end
    end
    imshow(uint8(desc));

    二、锐化

    锐化就是通过增强高频分量来减少图象中的模糊,因此又称为高通滤波。锐化处理在增强图象边缘的同时增加了图象的噪声。

    常用的锐化模板是拉普拉斯(Laplacian)模板,而本人也是采用的拉普拉斯模板进行的锐化处理。

    [-1,-1,-1]

    [-1,9,-1]

    [-1,-1,-1]

    三、平滑

    平滑与锐化相反,就是滤掉高频分量,从而达到减少图象噪声,使图片变得有些模糊。

    常用的平滑处理方法有三种:

    • Box模板去噪平滑处理,也就是均一化处理。

                         Box模板是{1,1,1,1,1,1,1,1,1}

    • 高斯模板去噪平滑处理,就是在Box模板的基础上加入了加权系数,考虑了距离某点位置越近影响越大的因素。相比Box模板,较为清晰一些。

                         高斯模板是{1,2,1,2,4,2,1,2,1}

    • 中值滤波去噪平滑处理,就是将该点左右邻近的两个点的rgb值与该点自身进行比较,选择其中最中间的值赋给该点。


    最终代码:
    Img1=imread('Fig4.jpg');subplot(3,3,1);imshow(Img1);title('Fig4.jpg');
    w1=[1,1,1;1,1,1;1,1,1];w2=[1,2,1;2,4,2;1,2,1];
    w3=[-1,-2,-1;0,0,0;1,2,1];w4=[-1,0,1;-2,0,2;-1,0,1];
    k1=1/sum(sum(w1));k2=1/sum(sum(w2));
    variance=225;
    [m,n]=size(Img1);
    I1=uint8(double(Img1)+randn(m,n).*sqrt(variance)+5);
    subplot(3,3,2);imshow(I1);title('gs.png');
    
    II1=double(I1);
    II11=double(I1);
    II111=double(I1);
    for i=2:m-1
        for j=2:n-1
            p=[II1(i-1,j-1),II1(i-1,j),II1(i-1,j+1);II1(i,j-1),II1(i,j),II1(i,j+1);II1(i+1,j-1),II1(i+1,j),II1(i+1,j+1)];
            II1(i,j)=sum(sum((p.*w1)*k1));
            a=(p.*w1);
            pp=sort(reshape(a,1,9));
            II11(i,j)=pp(5);
            II111(i,j)=abs(sum(sum(p.*w3)))+abs(sum(sum(p.*w4)));
        end
    end
    subplot(3,3,5);imshow(uint8(II1));title('normal 均值滤波 gs.png');
    subplot(3,3,8);imshow(uint8(II11));title('normal 中值滤波 gs.png');
    subplot(3,3,7);imshow(uint8(II11));title('normal 锐化 gs.png');
    I2=Img1;
    a=rand(m,n);
    for i=1:m
        for j=1:n
            if(a(i,j)>0.975)
                   I2(i,j)=255;
            elseif(a(i,j)<0.05)
                    I2(i,j)=0;
            end
        end
    end
    subplot(3,3,3);imshow(I2);title('jyzs.png');
    II2=double(I2);
    II22=double(I2);
    for i=2:m-1
        for j=2:n-1
            p=[II2(i-1,j-1),II2(i-1,j),II2(i-1,j+1);II2(i,j-1),II2(i,j),II2(i,j+1);II2(i+1,j-1),II2(i+1,j),II2(i+1,j+1)];
            II2(i,j)=sum(sum((p.*w2)*k2));
            a=(p.*w1);
            pp=sort(reshape(a,1,9));
            II22(i,j)=pp(5);
        end
    end
    subplot(3,3,6);imshow(uint8(II2));title('normal jyzs.png');
    subplot(3,3,9);imshow(uint8(II22));title('normal 中值滤波 jyzs.png');
    
    


    展开全文
  • 图像处理中经常用的一幅图片Lena.jpg

    万次阅读 多人点赞 2019-09-20 11:36:08
    在数字图像处理中,Lena(Lenna)是一张被广泛使用的标准图片,特别在图像压缩的算法研究中。 (为什么用这幅图,是因为这图的各个频段的能量都很丰富:即有低频(光滑的皮肤),也有高频(帽子上的羽毛),很...

    在数字图像处理中,Lena(Lenna)是一张被广泛使用的标准图片,特别在图像压缩的算法研究中。


    (为什么用这幅图,是因为这图的各个频段的能量都很丰富:即有低频(光滑的皮肤),也有高频(帽子上的羽毛),很适合来验证各种算法)
           然而,这张图片背后的故事是颇有意思的,很多人都抱有学究都是呆子的看法,然而Lena对此就是一个有力的驳斥。lena(lenna)是一张于1972年11月出版的Playboy的中间插页,在这期杂志中使用了“Lenna”的拼写,而实际莉娜在瑞典语中的拼写是“lena”。如今的Lena生活在自己的祖国瑞典,从事于酿造业,婚后并生下3个孩子。


    从1973年以来,Lena就开始出现在图像处理的科学论文中,直到1988年,她才得知自己原来已经被从事图像处理行业的工作者认识。 1997年,lena 被邀请参加了在波士顿举办的第50届图像科技技术年会。
           1973年6,7月间,南加州大学信号图像处理研究所的副教授Alexander和学生一起,为了一个同事的学会论文正忙于寻找一副好的图片。他们想要一副具有良好动态范围的人的面部图片用于扫描。不知是谁拿着一本Playboy走进研究室。由于当时实验室里使用的扫描仪(Muirhead wirephoto scanner)分辨率是100行/英寸,试验也仅仅需要一副512X512的图片,所以他们只将图片顶端开始的5.12英寸扫描下来,切掉肩膀一下的部分。多年以来,由于图像Lena源于Playboy,将其引用于科技文章中饱受争议。Playboy杂志也将未授权的引用告上法庭。随着时间流失,人们渐渐淡忘Lena的来源,Playboy也放松了对此的关注。值得一提的是,Lena也是playboy发行的最畅销的海报,已经出售7,161,561份。

          这个是原版的Lena照片,图像处理的初学者一定会大跌眼镜吧

    PlayBoy杂志封面上的Lena.jpg;

    https://img-blog.csdn.net/20140702104120484

    另外一件有趣的事情是,Lenna的那一期杂志是当时Playboy销量最好的一期,共卖出去了7161561份。

    现在Lena.jpg

    标准Lena.jpg

    该图原本是刊于1972年11月号花花公子杂志上的一张裸体插图照片的一部分,这期花花公子也是历年来最畅销的一期,销量达7,161,561本。1973 年6月,美国南加州大学的信号图像处理研究所的一个助理教授和他的一个研究生打算为了一个学术会议找一张数字照片,而他们对于手头现有成堆"无聊"照片感到厌烦。事实上他们需要的是一个人脸照片,同时又能让人眼前一亮。这时正好有人走进实验室,手上带着一本当时的花花公子杂志,结果故事发生了……而限于当时实验室设备和测试图片的需要,lenna的图片只抠到了原图的肩膀部分。

           图中人为瑞典模特儿 Lena Soderberg (Lena Söderberg)。现在被广泛使用的英文化名字"Lenna"最初是由花花公子杂志发表此照片时命名的,以方便英语读者近似正确地读出瑞典语中"Lena"的发音。Lena Soderberg女士现在仍住在她的家乡瑞典,拥有一个有三个孩子的家庭,并且在国家酒类专卖局工作。在1988年的时候,她接受了瑞典一些计算机相关出版社的访问,她对于她的照片有这样的奇遇感到非常的惊奇与兴奋。这是她首次得知她的照片被应用在计算机行业。Lena Soderberg于1997年被邀请为嘉宾,参加了数字图像科学技术50周年学术会议。在该会议上,Lenna成了最受欢迎的人之一,她做了关于自己介绍的简要发言,并被无数的fans索取签名。 

           莱娜图在图像压缩算法是最广泛应用的标准测试图——她的脸部与裸露的肩部已经变成了事实上的工业准。然而,这张图像的使用也引起了一些争议。一些人担心它的色情内容;《花花公子》杂志曾经威胁要起诉对莱娜图未经授权的使用。不过这家杂志已经放弃了这种威胁,取而代之的是鼓励因为公众利益使用莱娜图。

            戴维·C·蒙森(David C.Munson),IEEE图像处理汇刊(IEEE Transactions on Image Processing)的主编, 在1996年1月引用了两个原因来说明莱娜图在科研领域流行的原因:1.该图适度的混合了细节、平滑区域、阴影和纹理,从而能很好的测试各种图像处理算法。2.Lenna是个美女,对于图象处理界的研究者来说,美女图可以有效的吸引他们来做研究。

     

    转载,原文地址:http://blog.sina.com.cn/s/blog_53220cef0100lbzk.html

    展开全文
  • Lena与数字图像处理

    千次阅读 2016-08-28 08:58:21
    在数字图像处理中,Lena(Lenna)是一张被广泛使用的标准图片,特别在图像压缩的算法研究中。  黑白Lena图 标准Lena (为什么用这幅图,是因为这图的各个频段的能量都很丰富:即有低频(光滑的皮肤),也有高频...
    原文地址:Lena与数字图像处理作者:谢强
    在数字图像处理中,Lena(Lenna)是一张被广泛使用的标准图片,特别在图像压缩的算法研究中。
    [转载]Lena与数字图像处理

     黑白Lena图
    [转载]Lena与数字图像处理

    标准Lena
    (什么用这幅图,是因为这图的各个频段的能量都很丰富:即有低频(光滑的皮肤),也有高频(帽子上的羽毛),很适合来验证各种算法)
        然而,这张图片背后的故事是颇有意思的,很多人都抱有学究都是呆子的看法,然而Lena对此就是一个有力的驳斥。lena(lenna)是一张于1972年11月出版的Playboy的中间插页,在这期杂志中使用了“Lenna”的拼写,而实际莉娜在瑞典语中的拼写是“lena”。如今的Lena生活在自己的祖国瑞典,从事于酿造业,婚后并生下3个孩子。
    [转载]Lena与数字图像处理

    第50届图像科技技术年会上的Lena
    从1973年以来,Lena就开始出现在图像处理的科学论文中,直到1988年,她才得知自己原来已经被从事图像处理行业的工作者认识。 1997年,lena 被邀请参加了在波士顿举办的第50届图像科技技术年会。
    1973年6,7月间,南加州大学信号图像处理研究所的副教授Alexander和学生一起,为了一个同事的学会论文正忙于寻找一副好的图片。他们想要一副具有良好动态范围的人的面部图片用于扫描。不知是谁拿着一本Playboy走进研究室。由于当时实验室里使用的扫描仪(Muirhead wirephoto scanner)分辨率是100行/英寸,试验也仅仅需要一副512X512的图片,所以他们只将图片顶端开始的5.12英寸扫描下来,切掉肩膀一下的部分。莱娜图在图像压缩算法是最广泛应用的标准测试图——她的脸部与裸露的肩部已经变成了事实上的工业准。多年以来,由于图像Lena源于Playboy,将其引用于科技文章中饱受争议。《花花公子》杂志曾经威胁要起诉对莱娜图未经授权的使用。随着时间流逝,人们渐渐淡忘Lena的来源,Playboy也放松了对此的关注,取而代之的是鼓励因为公众利益使用莱娜图。值得一提的是,Lena也是playboy发行的最畅销的海报,已经出售7,161,561份。
    下面是原版的Lena照片,图像处理的初学者一定会大跌眼镜吧!
    [转载]Lena与数字图像处理

    PlayBoy杂志封面上的Lena
    戴维·C·蒙森(David C.Munson),IEEE图像处理汇刊(IEEE Transactions on Image Processing)的主编, 在1996年1月引用了两个原因来说明莱娜图在科研领域流行的原因:1.该图适度的混合了细节、平滑区域、阴影和纹理,从而能很好的测试各种图像处理算法。2.Lenna是个美女,对于图象处理界的研究者来说,美女图可以有效的吸引他们来做研究。
    展开全文
  •  基于像素的皮肤检测主要是寻找正确的颜色空间几何,图像处理中,常见的颜色空间有如下几种1. RGB色彩空间 – R代表单色红,G代表单色绿,B代表单色蓝2. HSV色彩空间 – H 代表色彩, S代表饱和度,

    基于像素的皮肤检测技术

    介绍一种基于颜色空间的皮肤检测技术,可以检测亚洲人种与白人的皮肤,皮肤检测

    人脸识别的基础,也是很多人像识别技术的基础操作,在实际应用中还是非常有用的。

     

    基于像素的皮肤检测主要是寻找正确的颜色空间几何,图像处理中,常见的颜色空间

    有如下几种

    1.      RGB色彩空间 – R代表单色红,G代表单色绿,B代表单色蓝

    2.      HSV色彩空间 – H 代表色彩, S代表饱和度,V代表强度值

    3.      YCbCr色彩空间 – 是数字电视的色彩空间

     

    RGB转换为HSV的Java代码如下:

    1. public static float[] rgbToHSV(int tr, int tg, int tb) {  
    2.     float min, max, delta;  
    3.     float hue, satur, value;  
    4.     min = Math.min(tr, Math.min(tg, tb));  
    5.     max = Math.max(tr, Math.max(tg, tb));  
    6.     value = max;  
    7.     delta = max - min;  
    8.     if(max != 0) {  
    9.         satur = delta/max;  
    10.     } else {  
    11.         satur = 0;  
    12.         hue = -1;  
    13.     }  
    14.       
    15.     if(tr == max) {  
    16.         hue = (tg - tb)/delta;  
    17.     }  
    18.     else if(tg == max) {  
    19.         hue = 2 + (tb-tr)/delta;  
    20.     } else {  
    21.         hue = 4 + (tr-tg)/delta;  
    22.     }  
    23.     hue = hue * 60.0f;  
    24.     if(hue < 0) {  
    25.         hue = hue + 360;  
    26.     }  
    27.     return new float[]{hue, satur, value};  
    28. }  

    RGB转换为YCbCr的Java代码如下:

    1. public static int[] rgbToYcrCb(int tr, int tg, int tb) {  
    2.     double sum = tr + tg + tb;  
    3.     double r = ((double)tr)/sum;  
    4.     double g = ((double)tg)/sum;  
    5.     double b = ((double)tb)/sum;  
    6.     double y = 65.481 * r + 128.553 * g + 24.966 * b + 16.0d;  
    7.     double Cr = -37.7745 * r - 74.1592 * g + 111.9337 * b + 128.0d;  
    8.     double Cb = 111.9581 * r -93.7509 * g -18.2072 * b + 128.0d;  
    9.     return new int[]{(int)y, (int)Cr, (int)Cb};  
    10. }  
    一个简单的基于RGB颜色空间的皮肤算法如下:

    (R, G, B) is classified as skin if

    R > 95 and G > 40 and B > 20and max{R, G, B} – min{R, G, B} > 15 and |R-G| > 15

    and R > G and R > B

    实现代码如下:

    1. public boolean isSkin(int tr, int tg, int tb) {  
    2.     int max = Math.max(tr, Math.max(tg, tb));  
    3.     int min = Math.min(tr, Math.min(tg, tb));  
    4.     int rg = Math.abs(tr - tg);  
    5.     if(tr > 95 && tg > 40 && tb > 20 && rg > 15 &&   
    6.             (max - min) > 15 && tr > tg && tr > tb) {  
    7.         return true;  
    8.     } else {  
    9.         return false;  
    10.     }  
    11. }  

    一个简单的基于HSV颜色空间的皮肤算法如下:

    (H, S, V) will be classified as skin if

    H > 0 and H < 50 and S > 0.23 andS < 0.68

    实现代码如下:

    1. public boolean isSkin(int tr, int tg, int tb) {  
    2.     float[] HSV = ColorUtil.rgbToHSV(tr, tg, tb);  
    3.     if((HSV[0] > 0.0f && HSV[0] < 50.0f ) && (HSV[1] > 0.23f && HSV[1] < 0.68f)){  
    4.         return true;  
    5.     } else {  
    6.         return false;  
    7.     }  
    8. }  

    一个简单的基于YCbCr颜色空间的皮肤算法如下:

    (Y, Cb, Cr) will be classified as skin if:

    > 80 and 85<Cb < 135 and 135 <Cr < 180, and (Y,Cb,Cr)= [0,255] 

    对于的Java代码如下:

    1. public boolean isSkin(int tr, int tg, int tb) {  
    2.     int y = (int)(tr * 0.299 + tg * 0.587 + tb * 0.114);  
    3.     int Cr = tr - y;  
    4.     int Cb = tb - y;  
    5.     if(y> 80 && y < 255 && Cr > 133 && Cr < 173 && 77 < Cb && Cb < 127) {  
    6.         return true;  
    7.     }  
    8.     return false;  
    9. }  
    基于上述三个算法实现的皮肤检测的效果如下:


    皮肤检测滤镜的源代码如下:

    1. package com.process.blur.study;  
    2.   
    3. import java.awt.Color;  
    4. import java.awt.image.BufferedImage;  
    5.   
    6. import com.gloomyfish.skin.dection.DefaultSkinDetection;  
    7. import com.gloomyfish.skin.dection.FastSkinDetection;  
    8. import com.gloomyfish.skin.dection.GaussianSkinDetection;  
    9. import com.gloomyfish.skin.dection.HSVSkinDetection;  
    10. import com.gloomyfish.skin.dection.ISkinDetection;  
    11.   
    12. public class SkinFilter extends AbstractBufferedImageOp {  
    13.     private ISkinDetection skinDetector;  
    14.       
    15.     public SkinFilter(int type) {  
    16.         if(type == 2) {  
    17.             skinDetector = new FastSkinDetection();  
    18.         } else if(type == 4) {  
    19.             skinDetector = new HSVSkinDetection();  
    20.         } else if(type == 8) {  
    21.             skinDetector = new GaussianSkinDetection();  
    22.         } else {  
    23.             skinDetector = new DefaultSkinDetection();  
    24.         }  
    25.     }  
    26.   
    27.     @Override  
    28.     public BufferedImage filter(BufferedImage src, BufferedImage dst) {  
    29.         int width = src.getWidth();  
    30.         int height = src.getHeight();  
    31.   
    32.         if ( dst == null )  
    33.             dst = createCompatibleDestImage( src, null );  
    34.   
    35.         int[] inPixels = new int[width*height];  
    36.         int[] outPixels = new int[width*height];  
    37.         getRGB( src, 00, width, height, inPixels );  
    38.         if(skinDetector instanceof GaussianSkinDetection) {  
    39.             ((GaussianSkinDetection)skinDetector).setDispSample(getDispersion(src));  
    40.         }  
    41.         int index = 0;  
    42.         for(int row=0; row<height; row++) {  
    43.             int ta = 0, tr = 0, tg = 0, tb = 0;  
    44.             for(int col=0; col<width; col++) {  
    45.                 index = row * width + col;  
    46.                 ta = (inPixels[index] >> 24) & 0xff;  
    47.                 tr = (inPixels[index] >> 16) & 0xff;  
    48.                 tg = (inPixels[index] >> 8) & 0xff;  
    49.                 tb = inPixels[index] & 0xff;  
    50.                 if(skinDetector.isSkin(tr, tg, tb)) {  
    51.                     outPixels[index] = (ta << 24) | (tr << 16) | (tg << 8) | tb;  
    52.                 } else {  
    53.                     tr = tg = tb = 0;  
    54.                     outPixels[index] = (ta << 24) | (tr << 16) | (tg << 8) | tb;  
    55.                 }                 
    56.             }  
    57.         }  
    58.         setRGB( dst, 00, width, height, outPixels );  
    59.         return dst;  
    60.     }  
    61.       
    62.     public Color getDispersion(BufferedImage image) {  
    63.         // calculate means of pixel    
    64.         int index = 0;  
    65.         int height = image.getHeight();  
    66.         int width = image.getWidth();  
    67.         int[] inPixels = new int[width*height];  
    68.         getRGB(image, 00, width, height, inPixels );  
    69.         double redSum = 0, greenSum = 0, blueSum = 0;  
    70.         Color meanColor = getMean(image);  
    71.         double redmeans = meanColor.getRed();  
    72.         double greenmeans = meanColor.getGreen();  
    73.         double bluemeans = meanColor.getBlue();  
    74.         double total = height * width;    
    75.         for(int row=0; row<height; row++) {    
    76.             int ta = 0, tr = 0, tg = 0, tb = 0;    
    77.             for(int col=0; col<width; col++) {    
    78.                 index = row * width + col;    
    79.                 ta = (inPixels[index] >> 24) & 0xff;    
    80.                 tr = (inPixels[index] >> 16) & 0xff;    
    81.                 tg = (inPixels[index] >> 8) & 0xff;    
    82.                 tb = inPixels[index] & 0xff;   
    83.                 double rd = (tr - redmeans);  
    84.                 double gd = (tg - greenmeans);  
    85.                 double bd = (tb - bluemeans);  
    86.                 redSum += rd * rd;    
    87.                 greenSum += gd * gd;    
    88.                 blueSum += bd * bd;    
    89.             }    
    90.         }  
    91.         int reddiff = (int)Math.sqrt((redSum / total));  
    92.         int greendiff = (int)Math.sqrt((greenSum / total));  
    93.         int bluediff = (int)Math.sqrt(blueSum / total);  
    94.         System.out.println(" red dispersion value = " + reddiff);  
    95.         System.out.println(" green dispersion value = " + greendiff);  
    96.         System.out.println(" blue dispersion value = " + bluediff);  
    97.         return new Color(reddiff, greendiff, bluediff);  
    98.     }  
    99.       
    100.     public Color getMean(BufferedImage image) {  
    101.         // calculate means of pixel    
    102.         int index = 0;  
    103.         int height = image.getHeight();  
    104.         int width = image.getWidth();  
    105.         int[] inPixels = new int[width*height];  
    106.         getRGB(image, 00, width, height, inPixels );  
    107.         double redSum = 0, greenSum = 0, blueSum = 0;    
    108.         double total = height * width;    
    109.         for(int row=0; row<height; row++) {    
    110.             int ta = 0, tr = 0, tg = 0, tb = 0;    
    111.             for(int col=0; col<width; col++) {    
    112.                 index = row * width + col;    
    113.                 ta = (inPixels[index] >> 24) & 0xff;    
    114.                 tr = (inPixels[index] >> 16) & 0xff;    
    115.                 tg = (inPixels[index] >> 8) & 0xff;    
    116.                 tb = inPixels[index] & 0xff;    
    117.                 redSum += tr;    
    118.                 greenSum += tg;    
    119.                 blueSum +=tb;    
    120.             }    
    121.         }  
    122.         int redmeans = (int)(redSum / total);  
    123.         int greenmeans = (int)(greenSum / total);  
    124.         int bluemeans = (int)(blueSum / total);  
    125.         System.out.println(" red average value = " + redmeans);  
    126.         System.out.println(" green average value = " + greenmeans);  
    127.         System.out.println(" blue average value = " + bluemeans);  
    128.         return new Color(redmeans, greenmeans, bluemeans);  
    129.     }  
    130. }  

    讨论:

    皮肤检测中的后续处理非常重要,可以除去噪声,平滑图像,是皮肤检测的结果

    更加的准确,输出的更容易接受。

    展开全文
  • 数字图像处理第九章数字图像处理---形态学图像处理(一)预备知识1.1 预备知识1.1.1 集合理论中的基本概念1.2 二值图像、集合及逻辑算子(二)膨胀和腐蚀2.1 膨胀2.2 结构元的分解2.3 strel函数2.4 腐蚀(三) 膨胀...
  • 形态学图像处理

    万次阅读 多人点赞 2016-12-31 16:17:01
    形态学,即数学形态学(mathematical Morphology),是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质〈最具区分能力-...
  • 图像处理之直方图处理

    千次阅读 2019-10-14 09:17:01
    灰度级范围为[0,L-1]的数字图像的直方图是离散函数: 其中是第k级灰度值(=k),是图像中灰度值为的像素个数。 通常用MN表示的图像像素的总数除它的每个分量来归一化直方图,即: M和N分别是图像的行和列维数,...
  • 图像处理界的标准图像Lena背后的故事  2009-06-15 01:04:27| 分类: 电脑技术|举报|字号 订阅 在数字图像处理中,Lena(Lenna)是一张被广泛使用的标准图片,特别在图像压缩的算法研究中。...
  • 图像处理-放大和缩小

    千次阅读 2019-08-16 12:34:50
    在计算机图像处理和计算机图形学中,图像缩放(image scaling)是指对数字图像的大小进行调整的过程。图像缩放是一种非平凡的过程,需要在处理效率以及结果的平滑度(smoothness)和清晰度(sharpness)上做一个权衡...
  • matlab数字图像处理实验 1、什么是平滑处理?  首先明白几个名词:  (1)噪声:图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。 1.高斯噪声:高斯噪声是指它的概率密度函数服从高斯分布(即正态...
  • 无奈我PS技术不行,手笨做不出那样的效果…… 于是,我就自己写了一款方便高效的图像处理程序,只需设置相应的参数即可完成处理(懒人模式)。如果点入的读者只是为了使用程序,那么可以无视我下面啰啰嗦嗦的科普,...
  • 第九章:形态学图像处理1、图像的腐蚀和膨胀是两个基本的形态学操作,利用一些基于腐蚀和膨胀的形态学算法如边界提取、孔洞填充、凸壳、细化、骨架、裁剪等,可以从输入的图像中,输出感兴趣的特征。...
  • 图像处理之常用插值算法

    千次阅读 2017-08-04 09:51:34
    二维图像插值算法实现 2016-05-10 21:52 1805人阅读 评论(0) 收藏 举报 ...医学图像处理(3) ... 在做数字图像处理时,经常会碰到小数象素坐标的取值问题,这时就需要依据邻近象素的值来对该坐标进行插值。比
  • 顶级的图像处理芯片支持哪些最新的3D图像处理效果?这些3D图像效果能带给我们什么样的视觉冲击?何时我们可以在游戏上见到这些3D图像效果?购买最新的显卡能给我们带来什么? 3D图像处理无疑是现代电脑技术中发展最...
  • 图像处理之低通滤波

    万次阅读 2018-08-25 18:45:54
    图像处理或者计算机视觉应用中,在正式对图像进行分析处理前一般需要一个预处理的过程。预处理是对图像作一些诸如降维、降噪的操作,主要是为后续处理提供一个体积合适的、只包含所需信息的图像。这里通常会用到...
  • 其中数据需要使用老师提供的数据(50张车牌图片),尽量使用课程中老师讲授的传统的数字图像处理领域的知识,不使用深度学习(除非仅仅使用老师提供的数据集)。 2 方法概述 整个算法的流程见下表: 序号 步骤 ...
  • BLOB图像处理技术

    2019-06-25 10:59:31
    blob分析就是在一块“光滑”区域内,将出现“灰度突变”的小区域寻找出来。 举例来说,假如现在有一块刚生产出来的玻璃,表面非常光滑,平整。如果这块玻璃上面没有瑕疵,那么,我们是检测不到“灰度突变”的;相反...
  • 图像处理:中值滤波&均值滤波

    万次阅读 多人点赞 2018-08-16 20:06:58
    转自:openCV之中值滤波&amp;...  在开始我们今天的博客之前,我们需要先了解一下什么是滤波: openCV之中值滤波&...图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑...
1 2 3 4 5 ... 20
收藏数 3,987
精华内容 1,594
关键字:

图像处理 图片光滑