图像灰度化_图像灰度化处理 - CSDN
精华内容
参与话题
  • 图像处理:图像灰度化

    万次阅读 多人点赞 2019-06-18 16:42:06
    灰度图像上每个像素的颜色值又称为灰度,指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0。所谓灰度值是指色彩的浓淡程度,灰度直方图是指一幅数字图像中,对应每一个灰度值统计出具有该灰度值的象...

        灰度图像上每个像素的颜色值又称为灰度,指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0。所谓灰度值是指色彩的浓淡程度,灰度直方图是指一幅数字图像中,对应每一个灰度值统计出具有该灰度值的象素数。

      灰度就是没有色彩,RGB色彩分量全部相等。如果是一个二值灰度图象,它的象素值只能为0或1,我们说它的灰度级为2。用个例子来说明吧:一个256级灰度的图象,如果RGB三个量相同时,如:RGB(100,100,100)就代表灰度为100,RGB(50,50,50)代表灰度为50。

      现在大部分的彩色图像都是采用RGB颜色模式,处理图像的时候,要分别对RGB三种分量进行处理,实际上RGB并不能反映图像的形态特征,只是从光学的原理上进行颜色的调配。

      图像灰度化处理可以作为图像处理的预处理步骤,为之后的图像分割、图像识别和图像分析等上层操作做准备。


      图像灰度化处理有以下几种方式:

      1. 分量法

      将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。

                      

      2. 最大值法

      将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。

      

      3. 平均值法

      将彩色图像中的三分量亮度求平均得到一个灰度值。

      

      4. 加权平均法

      根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图像。

      


      以上这四种处理方式需要根据实际情况,进行选择。

      我个人使用C#实现情况如下:

    展开全文
  • 图像处理】灰度化

    千次阅读 2019-05-23 17:04:57
    图像灰度化就是图像中的每一像素点的分量都满足R=G=B=V的关系,此时的V就是灰度值 为什么要灰度化? 灰度是指含有亮度信息,不含彩色信息的图像。 使用灰度图的好处: 1、RGB的值都一样 2、图像数据 = 调色板...

    图像灰度化就是图像中的每一像素点的分量都满足R=G=B=V的关系,此时的V就是灰度值

    为什么要灰度化?

    灰度是指含有亮度信息,不含彩色信息的图像。

    使用灰度图的好处:

    1、RGB的值都一样

    2、图像数据 = 调色板索引值 = RGB的值 = 亮度值

    3、调色板为256色,所以图像数据中的一个字节代表一个像素

    一般做图像处理之前都需要先把图像进行灰度化。

    在这之前要访问图像中的每一个像素:

    Mat inputImage = imread("C:\\Users\\asus\\Desktop\\MouseWithoutBorders\\11.jpg");
    Mat outoutImage = inputImage.clone();
    int rowN = outoutImage.rows; //行数和列数
    int cloN = outoutImage.cols;
    for (int i = 0; i < rowN; i++)
    {
    	for (int j = 0; j < cloN; j++)
    	{
    		outoutImage.at<cv::Vec3b>(i, j)[0] ;  //B
    		outoutImage.at<cv::Vec3b>(i, j)[1] ;  //G
    		outoutImage.at<cv::Vec3b>(i, j)[2] ;  //R
    	}
    }

    原图,以便对比:

    灰度化的处理方法大致有以下几种方法:

    1、平均值法:

    double RGB = outoutImage.at<cv::Vec3b>(i, j)[0] + 
                outoutImage.at<cv::Vec3b>(i, j)[1] + 
    	    outoutImage.at<cv::Vec3b>(i, j)[2];
    outoutImage.at<cv::Vec3b>(i, j)[0] = RGB / 3;  //B
    outoutImage.at<cv::Vec3b>(i, j)[1] = RGB / 3;  //G
    outoutImage.at<cv::Vec3b>(i, j)[2] = RGB / 3;  //R

    2、最大值法

    double a = outoutImage.at<cv::Vec3b>(i, j)[0];
    double b = outoutImage.at<cv::Vec3b>(i, j)[1];
    double c = outoutImage.at<cv::Vec3b>(i, j)[2];
    double max;
    max = a > b ? a : b;
    max = max > c ? max : c;
    outoutImage.at<cv::Vec3b>(i, j)[0] = max;
    outoutImage.at<cv::Vec3b>(i, j)[1] = max;
    outoutImage.at<cv::Vec3b>(i, j)[2] = max;

    3、加权平均法:

    double a = outoutImage.at<cv::Vec3b>(i, j)[0]; //B
    double b = outoutImage.at<cv::Vec3b>(i, j)[1]; //G
    double c = outoutImage.at<cv::Vec3b>(i, j)[2]; //R
    outoutImage.at<cv::Vec3b>(i, j)[0] = a * 0.3 + b * 0.59 + c * 0.11;
    outoutImage.at<cv::Vec3b>(i, j)[1] = a * 0.3 + b * 0.59 + c * 0.11;
    outoutImage.at<cv::Vec3b>(i, j)[2] = a * 0.3 + b * 0.59 + c * 0.11;

    个人感觉均值灰度化的效果比较好~

    展开全文
  • 图像灰度化的三种方法及matlab,c++,python实现

    万次阅读 多人点赞 2016-01-12 22:05:26
    灰度化处理就是将一幅色彩图像转化为灰度图像的过程。彩色图像分为R,G,B三个分量,分别显示出红绿蓝等... 图像灰度化的算法主要有以下3种:  1)最大值法:使转化后的R,G,B得值等于转化前3个值中最大的一个,即:

    灰度化处理就是将一幅色彩图像转化为灰度图像的过程。彩色图像分为R,G,B三个分量,分别显示出红绿蓝等各种颜色,灰度化就是使彩色的R,G,B分量相等的过程。灰度值大的像素点比较亮(像素值最大为255,为白色),反之比较暗(像素最下为0,为黑色)。

        图像灰度化的算法主要有以下3种:

         1)最大值法:使转化后的R,G,B得值等于转化前3个值中最大的一个,即:

                         R=G=B=max(R,G,B)                    (1)

    这种方法转换的灰度图亮度很高。

          2)平均值法:是转化后R,G,B的值为转化前R,G,B的平均值。即:

                         R=G=B=(R+G+B)/3                                (2)

    这种方法产生的灰度图像比较柔和。

          3)加权平均值法:按照一定权值,对R,G,B的值加权平均,即:

                                        (3)

    分别为R,G,B的权值,取不同的值形成不同的灰度图像。由于人眼对绿色最为敏感,红色次之,对蓝色的敏感性最低,因此使将得到较易识别的灰度图像。一般时,得到的灰度图像效果最好。

    MATLAB代码及效果图:

    %%三种方法实现灰度化与调用MATLAB函数实现灰度化
    close all;
    clear all;
    
    Img=imread('11.jpg');
    [n m a]=size(Img);%判断图像的大小
    
    GrayImage= rgb2gray(Img);%调用MATLAB函数实现灰度化
    
    Img_Gray=zeros(n,m);
    for x=1:n%通过双循环对图像进行灰度化处理
        for y=1:m
         %  Img_Gray(x,y)=max(Img(x,y,1),max(Img(x,y,2),Img(x,y,3)));  %第一种方法实现灰度化
         %   Img_Gray(x,y)=(Img(x,y,1)+Img(x,y,2)+Img(x,y,3))/3;%第二种方法实现灰度化
            Img_Gray(x,y)=0.3*Img(x,y,1)+0.59*Img(x,y,2)+0.11*Img(x,y,3);%第三种方法实现灰度化
        end
    end
    figure,imshow(Img);title('原图像')
    figure,imshow(GrayImage);title('调用系统函数实现灰度化')
    figure,imshow(uint8(Img_Gray));title('第三种方法')
    
    效果图:

                        

                                             原图                                                         调用matlab函数                                 第三种方法

    vc+opencv实现:

    #include "stdafx.h"
    #include "highgui.h"
    #include "cv.h"
    #include
    #include
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        IplImage    *Image;                        //定义相应的图像指针  
        IplImage    *Image_r;                        //从1~5代表5中不同权值的结果  
        IplImage    *Image_g;  
        IplImage    *Image_b;
        IplImage    *GrayImage;
        IplImage    *Gray_Image;
    
        Image = cvLoadImage( "11.jpg", -1 );    //读取图片  
        if (Image == NULL)  
        return -1;   
      
        Image_r = cvCreateImage(cvGetSize(Image),8,1);  
        Image_g = cvCreateImage(cvGetSize(Image),8,1);  
        Image_b = cvCreateImage(cvGetSize(Image),8,1);
        GrayImage = cvCreateImage(cvGetSize(Image),8,1);
        Gray_Image = cvCreateImage(cvGetSize(Image),8,1);
        CvMat* pMat_r = NULL;         //定义与图像关联的数据指针  
        CvMat* pMat_g = NULL;  
        CvMat* pMat_b = NULL;  
        CvMat* pGrayMat = NULL;
        pMat_r = cvCreateMat(Image->height, Image->width, CV_32FC1);  
        pMat_g  = cvCreateMat(Image->height, Image->width, CV_32FC1);  
        pMat_b  = cvCreateMat(Image->height, Image->width, CV_32FC1); 
        pGrayMat= cvCreateMat(Image->height, Image->width, CV_32FC1);
        BYTE r;       //中间过程变量  
        BYTE g;  
        BYTE b;
        BYTE Gray;  
     
        for(int j=0; jheight; j++)  
        {  
             for(int i=0; iwidth; i++)  
            {             
              b = (BYTE)Image->imageData[j*Image->widthStep + i*3];     //B分量  
              g = (BYTE)Image->imageData[j*Image->widthStep + i*3 + 1]; //G分量  
              r = (BYTE)Image->imageData[j*Image->widthStep + i*3 + 2]; //R分量  
     //       Gray = max(g, max(b,r));    //第一种方法 
     //        Gray  = (BYTE)((r + g + b)/3); //第二种方法 
                Gray  = (BYTE)(0.11*b + 0.59*g + 0.30*r);//第三种方法  
              cvmSet(pGrayMat, j, i, Gray); 
      }  
         } 
          cvCvtColor(Image,Gray_Image,CV_BGR2GRAY); //调用opencv函数实现灰度化
          cvConvert(pGrayMat, GrayImage);  
          cvNamedWindow( "Image",CV_WINDOW_AUTOSIZE);  
          cvNamedWindow( "GrayImage",CV_WINDOW_AUTOSIZE);
          cvNamedWindow( "Gray_Image",CV_WINDOW_AUTOSIZE); 
          cvShowImage("Image", Image);  
          cvShowImage("GrayImage", GrayImage);  
          cvShowImage("Gray_Image", GrayImage);
          cvWaitKey(0);  
          cvDestroyWindow("Image");   
          cvDestroyWindow("GrayImage"); 
          cvDestroyWindow("Gray_Image");
          cvReleaseImage(&Image);  
          cvReleaseImage(&GrayImage); 
          cvReleaseImage(&Gray_Image);
          cvReleaseMat(&pGrayMat);  
          return 0;
    }
    
    效果图:

     
                          原图                                            直接调用opencv函数                                第三种方法实现

    python+opencv代码实现:

    import cv2  
    
    img = cv2.imread("11.jpg")  
    GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
    cv2.imshow("Image", img)
    cv2.imshow("grayImage", GrayImage) 
    cv2.waitKey (0)  
    cv2.destroyAllWindows()
    
    #第一种方法
    import cv2.cv as cv
    image = cv.LoadImage('11.jpg')
    grayimg= cv.CreateImage(cv.GetSize(image), image.depth, 1)
    for i in range(image.height):
        for j in range(image.width):
            grayimg[i,j] = max(image[i,j][0], image[i,j][1], image[i,j][2])
    cv.ShowImage('srcImage', image)        
    cv.ShowImage('grayImage', grayimg)
    cv.WaitKey(0)
    #第二种方法
    import cv2.cv as cv
    image = cv.LoadImage('11.jpg')
    grayimg = cv.CreateImage(cv.GetSize(image), image.depth, 1)
    for i in range(image.height):
        for j in range(image.width):
            grayimg[i,j] = (image[i,j][0] + image[i,j][1] + image[i,j][2])/3
    cv.ShowImage('srcImage', image)
    cv.ShowImage('grayImage', grayimg)
    cv.WaitKey(0)
    #第三种方法
    import cv2.cv as cv
    image = cv.LoadImage('11.jpg')
    grayimg = cv.CreateImage(cv.GetSize(image), image.depth, 1)
    for i in range(image.height):
        for j in range(image.width):
            grayimg[i,j] = 0.3 * image[i,j][0] + 0.59 * image[i,j][1] +  0.11 * image[i,j][2]
    cv.ShowImage('srcImage', image)           
    cv.ShowImage('grayImage', grayimg)
    cv.WaitKey(0)



    
    

                 

                           原图                                                    直接调用函数                                                       第三种方法

    展开全文
  • 图像处理的灰度化和二值化

    万次阅读 2018-08-03 09:28:06
    图像处理的灰度化和二值化  (2016-12-07 16:17:07) 转载▼ 标签:  图像处理 分类: 人工智能和大数据  在图像处理中,用RGB三个分量(R:Red,G:Green,B:Blue),即红、绿、蓝三原色来表示...

    图像处理的灰度化和二值化

     (2016-12-07 16:17:07)

    转载

    标签: 

    图像处理

    分类: 人工智能和大数据

           在图像处理中,用RGB三个分量(R:Red,G:Green,B:Blue),即红、绿、蓝三原色来表示真彩色,R分量,G分量,B分量的取值范围均为0~255,比如电脑屏幕上的一个红色的像素点的三个分量的值分别为:255,0,0。

    像素点

       像素点是最小的图像单元,一张图片由好多的像素点构成,下图是一张美女的大白腿的图片。

    图像处理的灰度化和二值化

     

    查看这张图片的信息,尺寸是800 * 800 的,宽度是800像素,高度是800像素。也就是说这张图片是由一个800 * 800的像素点矩阵构成的(不理解矩阵是什么意思的话,可以把矩阵理解为C语言中的二维数组),这个矩阵是800行,800列,像素是图像的最小单元,这张图片的宽度是800个像素点的长度,高度是800个像素点的长度,共有800 * 800 = 640000个像素点。

    图像处理的灰度化和二值化

     

    因为一个像素点的颜色是由RGB三个值来表现的,所以一个像素点矩阵对应三个颜色向量矩阵,分别是R矩阵,G矩阵,B矩阵,它们也都是800 *800大小的矩阵。下面展示这张美女图片的一部分颜色矩阵数据:

     

    这个是R矩阵中的一部分
    图像处理的灰度化和二值化

     

    这个是G矩阵中的一部分
    图像处理的灰度化和二值化

     

    这个是B矩阵中的一部分

    图像处理的灰度化和二值化

    比如每个矩阵的第一行第一列的值分别为:R:240,G:223,B:204,所以这个像素点的颜色就是(240,223,204),三个矩阵的值不一定一 一对应,这样做只是为了便于读者理解。

     

    图像的灰度化

         在理解了一张图片是由一个像素点矩阵构成之后,我们就知道我们对图像的处理就是对这个像素点矩阵的操作,想要改变某个像素点的颜色,我们只要在这个像素点矩阵中找到这个像素点的位置,比如第x行,第y列,所以这个像素点在这个像素点矩阵中的位置就可以表示成(x,y),因为一个像素点的颜色由红、绿、蓝三个颜色变量表示,所以我们通过给这三个变量赋值,来改变这个像素点的颜色,比如改成红色(255,0,0),可以表示为(x,y,(R=255,G=0,B=0))。

          那么什么叫图片的灰度化呢?其实很简单,就是让像素点矩阵中的每一个像素点都满足下面的关系:R=G=B(就是红色变量的值,绿色变量的值,和蓝色变量的值,这三个值相等,“=”的意思不是程序语言中的赋值,是数学中的相等),此时的这个值叫做灰度值。

     

    灰度处理的方法:

           一般灰度处理经常使用两种方法来进行处理。

       方法1:

              灰度化后的R=(处理前的R + 处理前的G +处理前的B)/ 3

              灰度化后的G=(处理前的R + 处理前的G +处理前的B)/ 3

              灰度化后的B=(处理前的R + 处理前的G +处理前的B)/ 3

     

       美女图片经过方法1进行灰度化后的效果如下:

    图像处理的灰度化和二值化

     

            方法2:

               灰度化后的R =  处理前的R * 0.3+ 处理前的G * 0.59 +处理前的B * 0.11

               灰度化后的G =  处理前的R * 0.3+ 处理前的G * 0.59 +处理前的B * 0.11

               灰度化后的B =  处理前的R * 0.3+ 处理前的G * 0.59 +处理前的B * 0.11

     

         美女图片经过方法2进行灰度化后的效果如下:图像处理的灰度化和二值化

     

    个人觉得第二种方法处理的效果比较好,第一种方法处理后的图片有点模糊。

    图像的二值化

         什么叫图像的二值化?二值化就是让图像的像素点矩阵中的每个像素点的灰度值为0(黑色)或者255(白色),也就是让整个图像呈现只有黑和白的效果。在灰度化的图像中灰度值的范围为0~255,在二值化后的图像中的灰度值范围是0或者255。

          黑色:

                   二值化后的R =  0

                   二值化后的G =  0

                   二值化后的B =  0

          白色:

                   二值化后的R =  255

                   二值化后的G =  255

                   二值化后的B =  255

           那么一个像素点在灰度化之后的灰度值怎么转化为0或者255呢?比如灰度值为100,那么在二值化后到底是0还是255?这就涉及到取一个阀值的问题。

    常用的二值化方法:

          方法1:

              取阀值为127(相当于0~255的中数,(0+255)/2=127),让灰度值小于等于127的变             为0(黑色),灰度值大于127的变为255(白色),这样做的好处是计算量小速度快,但是           缺点也是很明显的,因为这个阀值在不同的图片中均为127,但是不同的图片,他们的颜色          分布差别很大,所以用127做阀值,白菜萝卜一刀切,效果肯定是不好的。

         方法2:

              计算像素点矩阵中的所有像素点的灰度值的平均值avg

              (像素点1灰度值+...+像素点n灰度值)/ n = 像素点平均值avg

             然后让每一个像素点与avg一 一比较,小于等于avg的像素点就为0(黑色),大于avg的 像          素点为255(白色),这样做比方法1好一些。

        方法3:

              使用直方图方法(也叫双峰法)来寻找二值化阀值,直方图是图像的重要特质。直方图方法           认为图像由前景和背景组成,在灰度直方图上,前景和背景都形成高峰,在双峰之间的最低           谷处就是阀值所在。取到阀值之后再一 一比较就可以了。

    下面给出一张美女图片二值化后的效果图:(漂亮的大白腿依稀可见。)

    图像处理的灰度化和二值化
     

          

     

    展开全文
  • 图像灰度化

    千次阅读 2019-05-28 16:11:35
    RGB权重公式如下: Y=0.2989∗R+0.5870∗G+0.1140∗B GIMP GIMP有三种处理算法 lightness method 平均最突出和最不突出的部分 ...Y=(max(R,G,B)+min(R,G,B))/2 ...根据人类对色彩的感知程度,相...
  • 图像灰度化的常用三种方法有:1.分量法(本文以B通道为例):将彩×××像的R、G、B三分量的亮度之一作为灰度图像灰度值 Gray=B or Gray=G or Gray=R2.最大值法:将彩×××像的R、G、B三分量亮度最大值作为灰度图像...
  • 图像灰度化方法

    万次阅读 2014-08-11 19:27:25
    以下分别对这三种格式的彩色图像进行灰度化实现。 1、RGB空间图像  定义于RGB空间的彩色图,其每个像素点的色彩由R、G、B三个分量共同决定。每个分量在内存所占的位数共同决定了图像深度,即每个像素点所占的...
  • 灰度化:在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。一般常用的是加权平均法来获取每个...
  • matlab灰度化、二值化处理图像

    万次阅读 多人点赞 2018-12-04 21:04:03
    matlab文字识别与提取: 1.图像转换为数字矩阵 ...rgb2gray :通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能 gdata = rgb2gray(data); ...
  • opencv图像处理初步(一):灰度化和二值化

    万次阅读 多人点赞 2018-09-07 17:27:09
    一、图像二值化基本原理: ...(1)先对彩色图像进行灰度化 //img为原图,imgGray为灰度图 cvtColor(img, imgGray, CV_BGR2GRAY); (2)对灰度图进行二值化 //imgGray为灰度图,result为二值图像 /...
  • 图像灰度化原理和实现

    万次阅读 多人点赞 2006-07-06 23:31:00
    一、图像灰度化处理的基本原理将彩色图像转化成为灰度图像的过程成为图像灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255...
  • 图像灰度化处理的基本原理

    千次阅读 2015-12-15 17:28:35
    图像灰度化处理的基本原理 将彩色图像转化成为灰度图像的过程成为图像灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)...
  • matlab实现彩色图像灰度化的三种方法

    万次阅读 多人点赞 2018-12-14 20:50:13
    将彩色图像转换为灰度图像的过程称为灰度化处理。 对于图像而言,灰度化处理就是使彩色的R,G,B分量值相等的过程。 灰度化处理的方法主要有如下3种: 最大值法:使R,G,B的值等于3值中最大的一个,R=G=B=max(R,G,B...
  • 归一化灰度直方图 Matlab

    万次阅读 2016-08-06 13:57:37
    图像直方图描述的是图像各个灰度级的统计特性,他表示图像每一灰度级与该灰度级出现频率的对应关系,因为灰度级不是连续的,自然,灰度直方图是一个离散函数。横坐标是灰度级g,纵坐标是Ng,如果总的像素是N,灰度级...
  • 用matlab对图像进行二值化处理 >>m = imread('d:\image\logo.jpg'); >> imshow(n); >... n = graythresh(data);...用matlab对图像灰度化处理 data = imread('d:\image\photo.jpeg'); imshow(data); ...
  • 图像灰度化总结

    万次阅读 2018-07-17 19:28:10
    以下分别对这三种格式的彩色图像进行灰度化实现。 1、RGB空间图像  定义于RGB空间的彩色图,其每个像素点的色彩由R、G、B三个分量共同决定。每个分量在内存所占的位数共同决定了图像深度,即每个像素点所占的字节...
  • 图像的二值化和灰度化

    万次阅读 2011-08-12 14:58:33
    图像的二值是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。  将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字...
  • 图像灰度直方图

    万次阅读 2018-10-02 21:02:00
    灰度直方图是反映一幅图像中各灰度级像素出现的频率与灰度级的关系,以灰度级为横坐标,频率为纵坐标,绘制频率同灰度级的关系图像就是衣服灰度图像的直方图。 简单地说,就是把一幅图像中每一个像素出现的次数都先...
  • 图像灰度化方法1:求出每个像素点的RGB三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量 方法2:求RGB和YUV颜色空间的变化关系,建立亮度Y与RGB三个颜色分量的对应关系:Y=0.3R+0.59G+0.11B,以这个...
  • 两种灰度归一方法

    万次阅读 2019-04-24 17:15:20
    在许多图像处理系统中,灰度归一是必备的预处理过程。以手背静脉图像为例。由于同一个手背在不同时间、不同光照下采集到的静脉图像灰度分布上可能存在着很大的差异,图像灰度分布很不集中,这些将直接影响到...
1 2 3 4 5 ... 20
收藏数 61,042
精华内容 24,416
关键字:

图像灰度化