精华内容
下载资源
问答
  • matlab rgb2gray的实现

    万次阅读 2018-11-12 12:10:13
    rgb2gray是matlab内部一种处理图像的函数,通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能,调用这...这里,Matlab的rgb2gray函数采用的是对R、G、B分量进行...

      rgb2gray是matlab内部一种处理图像的函数,通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能,调用这个功能的格式是I = rgb2gray(RGB),意思是将真彩色图像RGB转换为灰度强度图像I 。   灰度化处理有多种处理方式:分量法 最大法 平均法 加权平均法。这里,Matlab的rgb2gray函数采用的是对R、G、B分量进行加权平均的算法:

    0.2989R+ 0.5870G + 0.1140B

     

    验证程序如下(为了便于观察,实验时应选用一个RGB各分量较为明显的图像):

    clear all;clc;close all;

    img = imread('test3.jpg');

     

    % 提取RGB分量

    img_r = img(:,:,1);

    img_g = img(:,:,2);

    img_b = img(:,:,3);

     

    figure;

    subplot(2,3,1),imshow(img), title('原图');

    subplot(2,3,4),imshow(img_r), title('R分量');

    subplot(2,3,5),imshow(img_g), title('G分量');

    subplot(2,3,6),imshow(img_b), title('B分量');

     

    % 灰度变换,公式:f(x,y)=0.2989R+ 0.5870G + 0.1140B

    img_gray1 = img(:,:,1)*0.2989+ img(:,:,2)*0.5870+ img(:,:,3)*0.1140;

    subplot(2,3,2),imshow(img_gray1), title('由公式变换');

     

     % 灰度变换,rgb2gray()函数

    img_gray2 = rgb2gray(img);

    subplot(2,3,3),imshow(img_gray2), title('rgb2gray变换');

     

    上图可以看出,对于R分量图,由于G、B分量的灰度值均为0,因此G、B区域灰度值为0即为黑色区域,R分量区域灰度值均为255即为白色圆区域;同理可解释G、B分量图。

    展开全文
  • matlabrgb2gray() 函数 具体实现

    万次阅读 多人点赞 2018-06-03 20:13:46
    简介 rgb2graymatlab内部一种处理图像函数,通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理功能,调用这个功能格式是I = rgb2gray(RGB),意思是将真彩色...

                简介

        rgb2gray是matlab内部一种处理图像的函数,通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能,调用这个功能的格式是I = rgb2gray(RGB),意思是将真彩色图像RGB转换为灰度强度图像I 。

            调用格式

    I = rgb2gray(RGB)
    newmap= rgb2gray(map)

    函数算法

    灰度化处理有多种处理方式:分量法 最大法 平均法 加权平均法
    Matlab 中采用的是对R、G、B分量进行加权平均的算法:
    0.2989R+ 0.5870G + 0.1140B
    (注意,rgb2ntsc函数也使用相同的权重来计算Y分量)

            具体函数

    function imgray=rgbimage2gray(imrgb)
    [m,n,t]=size(imrgb);
    for i=1:m
        for j=1:n
            for k=1:t
                
                imgray(i,j,k)=0.299*imrgb(i,j,1)+0.587*imrgb(i,j,2)+0.11400*imrgb(i,j,3);%加权实现从真彩到灰度的降维转换
               
            end
               
        end
    end

    展开全文
  • matlab开发-rgb2gray

    2019-08-27 07:53:32
    matlab开发-rgb2gray。不同方法转换rgb2gray的比较
  • 图像是怎样构成?像素对于我们来说并不陌生,在我们购买手机时候像素高低是我们参考重要标准之一。其实任意一幅图像都是由非常多个像素点...在RGB彩色模型中表示图像由三个分量图像组成,每种原色一幅分...

    bba3e86d0da8974a475342b9cbe35148.png

    图像是怎样构成的?

    像素对于我们来说并不陌生,在我们购买手机的时候像素的高低是我们参考的重要标准之一。其实任意一幅图像都是由非常多个像素点构成,而每一个像素点都能表示任意一种颜色,我们可以将像素点理解成最小的图像单位。在初中物理中我们曾学习到任意一种颜色都可以由三原色(红绿蓝)组合而成,事实上每一个像素点也是由R、G、B值的不同组合而成。

    25fbae3974e5117b8503e270ecca60a0.png

    在RGB彩色模型中表示的图像由三个分量图像组成,每种原色一幅分量图像。利用MATLAB对图像进行读取,我们可以看到该图像RGB的数据为256*256*3 uint8,其中256*256表示长和宽的像素个数,3表示红绿蓝三个分量图像,uint8,表示每个分量图像(R、G、B)的像素点值的位宽为8比特,即可表示0-255的范围。

    9803c61db2375cae6b232ad0a7806961.png

    彩色图像是如何转换为灰度图像的?

    灰度数字图像是每个像素只有一个采样颜色的图像,通常显示为从最暗黑色到最亮的白色的灰度。前面我们已经知道了每个分量图的像素点为8bit,可表示0-255的范围,其中0表示黑色,255表示白色。因而我们可以通过RGB模型到YUV模型(亮度-色度模型,“Y”表示明亮度,“U”和“V”则是色度、浓度)的转换,利用数学计算,将RGB三通道转化为YUV模型中的Y通道(亮度)从而将彩色图像转换成灰度图像。转换公式如下

    b6dac5304eee1b63d2e11897562353b0.png

    MATLAB代码实现

    通常我们可以使用两种方法将彩色图像转化为灰度图像,一种是使用MATLAB自带的rgb转灰度指令rgb2gray,另一种则是利用转换公式进行计算,以下是源代码。

    050b0b37ceab69e4446fb1848d5003ac.png

    我们来看看代码运行后的效果图

    c5e586a3b2e8c21427faba925ff706f2.png

    现在我们可以知道如美图秀秀等修图软件添加滤镜的效果其实就是在对图像的RGB值进行处理,而这一点MATLAB也能够做到。

    参考资料:

    数字图像处理_第三版_中_冈萨雷斯

    展开全文
  • 对比度展宽目的:通过将亮暗差异(即对比度)扩大,来把人所关心部分强调出来。原理:进行像素点对点,灰度级线性影射。该影射关系通过调整参数,来实现对亮暗差异扩大。实现方法:设原图、处理后结果图...

    115b38a7a22233f9126d2879dd908993.png

    对比度展宽的目的:

    通过将亮暗差异(即对比度)扩大,来把人所关心的部分强调出来。

    原理:

    进行像素点对点的,灰度级的线性影射。该影射关系通过调整参数,来实现对亮暗差异的扩大。

    实现方法:

    • 设原图、处理后的结果图的灰度值分别为[f(ij)][g(i,)];
    • 要求[g(i,)]和[f(i,)]均在[0, 255]间变化,但是g的表现效果要优于f。
    • 因为f和g的取值范围相同,所以通过抑制不重要的部分,来扩展所关心部分的对比度。

    原图(横轴上的f(i,j))与处理后图(纵轴上的g(i,j))的灰度影射关系如下图:

    251a0a447e22bb1234cf3430274c3db1.png

    ……不好意思放错了,是这张图:

    0d51a7954508b295bd87485743aab9e1.png

    计算公式:

    0238804d744aa02af2b239ebeadce8da.png

    其中

    5ca21d11ec8c4eb5c02094d8981d541a.png

    46c7dbc5bb65f1f44e41a3cc7c67dc6c.png

    0c849a9481a2286d4e29cbe793140670.png

    (图像大小为m✖️n)


    接下来在MATLAB上写一下

    原图:

    57b179a152914034099bceff2fa94142.png

    MATLAB:

    fcfee0d7ca2df35da9376f61bf6a6bfb.png

    文字版:

    fa=5;fb=30;

    ga=80;gb = 100;

    ImPath='bqb.jpeg';

    %%J=ContrastWidening(ImPath, fa, fb, ga, gb) ;

    F=imread (ImPath) ;

    color=size(F,3) ;

    if (color>1)

    F=rgb2gray(F) ;

    end

    m=size(F, 1) ;

    n=size(F, 2) ;

    G=zeros (m, n) ;

    for i=1 :m

    for j=1:n

    if(F(i, j)<fa)

    G(i, j)=(ga/fa)*F(i, j);

    elseif(F(i, j)<fb)

    G(i, j)=(gb-ga)/ (fb-fa)*(F(i, j)-fa) +ga;

    else

    G(i, j)= (255-gb)/ (255-fb)*(F(i, j)-fb) +gb;

    end

    end

    end

    G=uint8 (G);

    imshow(G);

    运行结果:

    1f463d386da16fe6ef80fee8d211f8db.png

    可能是我的图片找的不好,另一组的示例更具有代表性:

    a9819caa9e796d1311b49bbf9d9d81eb.png

    end~

    展开全文
  • Matlab中imread和rgb2gray的使用

    千次阅读 热门讨论 2020-05-29 14:36:13
    语法为: A = imread(filename) A = imread(filename,fmt) A = imread(___,idx) A = imread(___,Name,Value) [A,map] = imread(___) [A,map,transparency] = imread(___) 对上述语法进行说明: A = ...
  • Matlab文件夹批量操作文件实例-new_rgb2gray.m 看了帖子“https://www.ilovematlab.cn/thread-46154-1-1.html”首先感谢goodlucklars 对文件夹操作有了新认识,结合以前hehaihuiwang一个gui代码中对文件夹...
  • 出现这种情况是你使用图像是因为是8位色深度图片,可以使用qq截图等方式将其截图下来改为24位色深度图片就可以解决其问题。 参考了网上网友说法就解决了该问题。感谢 ...
  • RGB2Gray实现方案1使用MATLAB自带rgb2gray函数,实现bmp转Gray算法,这个适用于PC上实现。1.2.1. Matlab代码clear all;% --------------------------------------------------------------------------% Rea...
  • 出现这种情况是你使用图像是因为是8位色深度图片,可以使用qq截图等方式将其截图下来改为24位色深度图片就可以解决其问题。 参考了网上网友说法就解决了该问题。感谢 ...
  • Matlab报错:错误使用 rgb2gray>parse_inputs (第 79 行) MAP 必须为 m x 3 数组。请对 RGB 和灰度图像使用 im2gray。 下述程序块你读取一张彩色图片,并转为灰度图像后显示。 [X,map] = imread("laina.bmp");...
  • RGB2GRAY.exe

    2020-01-17 10:35:13
    图像去色算法matlab到C++/opencv移植exe文件;RGB2GRAY测试文件;平台:qt5.12+MSVC2015(vs2015编译器)+opencv4.2;
  • filepath_save='C:\Users\Desktop\test2';% 保存路径 img_path_list=dir(strcat(file_path,''));%获取该文件夹中所有格式图像 img_num = length(img_path_list);%获取图像总数量 for j = 3:img_num%逐一读取图像
  • rgb2gray原理

    千次阅读 2015-01-12 15:35:39
      以R、G、B为轴建立空间直角坐标系,则RGB每个象素颜色可以用该三维空间一个点来表示, 而Gray每个象素颜色可以用直线R=G=B上一个点来...事实上Matlab也是这样做,并且有Gray = 0.29900 * R
  • 为什么我用rgb2gray灰度化之后变成彩色了?![图片说明](https://img-ask.csdn.net/upload/201905/25/1558756342_806565.png),,,工具是matlab
  • 使用Matlab给灰度图像上色 Gray2RGB 函数,需要额外提供一张配色接近图片。 该原始算法源于Jeny Rajan , Chandrashekar,但其运行速度过慢,我做了一些Matlab特有小优化,大大提高了运行速度。
  • 问题:Octave找不到类似在matlab中图像处理相关函数,例如rgb2gray 解决办法:在使用前加载相应图像包 在Octave命令行输入如下命令 pkg load image  下面命令可以用来查看已安装包 pkg list ...
  • 【OpenCV】RGB2GRAY原理

    千次阅读 2014-07-29 17:25:40
    以R、G、B为轴建立空间直角坐标系,则RGB每个象素颜色可以用该三维空间一个点来表示, 而Gray每个象素颜色可以用直线R=G=B上一个点来...事实上Matlab也是这样做,并且有Gray = 0.29900 * R + 0.5870
  • 图像处理:rgb2gray

    千次阅读 2019-06-13 10:04:25
    这个函数比较简单,matlab 网站上给出大约是这个样子, 0.2989R+ 0.5870G + 0.1140B 注意,如果程序中直接写成浮点乘法,相对比较消耗时间,一般我会写成整数乘法形式, gray = (R*77 + G*150 + B*29) >&...
  • RGBGray

    千次阅读 2018-03-11 16:09:43
    Matlab里内置了一个函数rgb2gray()实现该功能 也可以用公式实现转化 G=0.30*R+0.59*G+0.11*B rgb_image=imread('Fig0604(a).tif'); %gray_im=zeros(600,600); %% %不用循环做法 gray_im=rgb_image(:,:,1)*0.3...
  • rgb2gray之平均值法

    2008-12-04 21:37:52
    本程序基于matlab实现rgb彩图向灰度图转化,采用了平均值法实现。
  • 1、练习以下函数imread()、imshow()、subplot()、rgb2gray()、imresize() 2、读取lena.bmp图像并显示,将其反色处理后再显示 二、函数分析: 1、imread() 定义:从图形文件读取图像 形式:A = imread...
  • 使用MATLAB进行图片的处理十分... MATLAB对于图像处理中有丰富的函数,最简单的RGB转Gray只需要一个函数rgb2gray()即可完成。但是如果光是这样学习图像处理,是没有多大意义的,所以博主决定自己根据原理用MATLA...
  • Matlab 图像处理
  • 我和他有同样问题,我有一个彩色画面,我用MATLAB读取图片:Input = imread('input1.jpg');,和格式图像是612x612x3 UINT8,我打印5x5x1像素在画面如下:Input(1:5,1:5,1)201 201 201 201 201201 201 201 201 ...
  • rgb2gray之经典算法

    2008-12-04 21:50:19
    本程序基于matlab实现彩图向灰度图转化,采用了经典算法!
  • MyYuanLaiPic = imread('e:/image/matlab/...MyFirstGrayPic = rgb2gray(MyYuanLaiPic);%用已有函数进行RGB到灰度图像转换 [rows , cols , colors] = size(MyYuanLaiPic);%得到原来图像矩阵参数 MidG...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,003
精华内容 401
关键字:

matlab的rgb2gray

matlab 订阅