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

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

      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分量图。

    展开全文
  • 图像是怎样构成的?像素对于我们来说并不陌生,在我们购买手机的时候像素的高低是我们参考的重要标准之一。其实任意一幅图像都是由非常多个像素点...在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也能够做到。

    参考资料:

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

    展开全文
  • 仅为学习交流,侵删!转载请注明出处! 目录 clc;clear;close all; file_path ='C:\Users\Desktop\test1';...filepath_save='C:\Users\Desktop\test2';...img_path_list=dir(strcat(file_path,''));...for j = 3:img_num%...

    仅为学习交流,侵删!转载请注明出处!
    目录

    clc;clear;close all;
    
    file_path ='C:\Users\Desktop\test1';
    filepath_save='C:\Users\Desktop\test2';% 保存路径
    img_path_list=dir(strcat(file_path,''));%获取该文件夹中所有格式的图像 
    img_num = length(img_path_list);%获取图像总数量  
    for j = 3:img_num%逐一读取图像  
            image_name = img_path_list(j).name;% 图像名  
            imgName  = [file_path ,'\', image_name];
            rgb = imread(imgName);
            gray = rgb2gray(rgb);
            % subplot(1,2,1)
            % imshow(rgb); 
            % title('rgb');
            % subplot(1,2,2)
            % imshow(gray); 
            % title('gray');
            an = strsplit(image_name,'.');
            str = char(an(1)); 
            image_out_name = strcat(str,'.png');
            imgOut  = [filepath_save ,'\', image_out_name];
            imwrite(gray,imgOut)
    end 
    
    展开全文
  • matlab开发-rgb2gray

    2019-08-27 07:53:32
    matlab开发-rgb2gray。不同方法转换rgb2gray的比较
  • RGB转Gray

    千次阅读 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...

    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+rgb_image(:,:,2)*0.59+rgb_image(:,:,3)*0.11;
    %%
    %下面为添加循环的做法
    % for i=1:600
    %     for j=1:600
    %         gray_im(i,j)=rgb_image(i,j,1)*0.3+rgb_image(i,j,2)*0.59+rgb_image(i,j,3)*0.11;
    %     end
    % end
    %%
    gray_im=uint8(gray_im);
    gray_image=rgb2gray(rgb_image);
    figure,imshow(rgb_image);
    figure,imshow(gray_im);
    figure,imshow(gray_image)
    

    实现的效果是一样的
    原图:
    这里写图片描述

    转换为灰度图
    左图为公式,右图为内置函数

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

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

    2019-08-22 21:03:48
    matlab开发-gray2rgb。将m x n矩阵转换为m x n x 3矩阵。
  • 如图,有没有大佬知道问题出在哪里呀
  • matlab图像处理之RGB转Ycbcr or gray

    千次阅读 2017-11-25 21:48:52
    Y'和Y是不同的,而Y就是所谓的流明(luminance),表示光的浓度且为非线性,使用伽马修正(gamma correction)编码处理 rgb原图 matlab 源码: clear all; close all; clc; img = imread('lena1.jpg');%图像读入 figure,...
  • 使用MATLAB进行图片的处理十分... MATLAB对于图像处理中有丰富的函数,最简单的RGB转Gray只需要一个函数rgb2gray()即可完成。但是如果光是这样学习图像处理,是没有多大意义的,所以博主决定自己根据原理用MATLA...
  • matlab RGB灰度图

    千次阅读 2014-07-05 14:19:20
    imgrgb = imread('flower.jpg'); imwrite(imgrgb, 'flower.bmp', 'bmp'); % jpg格式转换为bmp格式 ...imggray = rgb2gray(imgrgb); imwrite(imggray, 'flower_grayscale.bmp', 'bmp'); % 存储为灰度图像
  • rgb2gray原理

    千次阅读 2015-01-12 15:35:39
     ...于是rgb转gray图的本质就是寻找 一个三维空间到一维空间的映射,最容易想到的就是射影(即过rgb空间的一个点向直线R=G=B做垂线), 事实上Matlab也是这样做的,并且有Gray = 0.29900 * R
  • Matlab实现RGB图像批量转换热图

    千次阅读 2019-04-24 16:15:50
    转换方法要求原图为单通道图像,所以首先使用了rgb2gray的方法。 转换原理为原图像像素值越大,在热图中就越红,反之在热图中就越蓝。 colormap(jet);使用的jet色图如下: 整个代码如下: ...
  • 【OpenCV】RGB2GRAY原理

    千次阅读 2014-07-29 17:25:40
    于是rgb转gray图的本质就是寻找 一个三维空间到一维空间的映射,最容易想到的就是射影(即过rgb空间的一个点向直线R=G=B做垂线), 事实上Matlab也是这样做的,并且有Gray = 0.29900 * R + 0.5870
  • 之前学FPGA 先要要应用在图像方面,在网上也找了很多资料,matlab算是资源最多了的,博主本着学习的目的,将每天所学的写成笔记,方便以后的复习,同时也可以让...rgb转灰度 Gray = R0.299 + G0.587 + B*0.114 ...
  • Matlab----RGB图像转换成灰度图像

    千次阅读 2020-01-27 23:22:24
    Gray=rgb2gray(RGB); figure,imshow(RGB); figure,imshow(Gray); RGB颜色图转换为灰度图 读取RGB颜色图的索引图像,然后将颜色图转换为灰度 [X,map] = imread('corn.tif'); newmap = rgb2gray(map); ...
  • matlab实现灰度图转rgb

    千次阅读 2020-04-27 10:21:06
    function rgbimg = gray2rgb(img) [rows,cols]=size(img); r=zeros(rows,cols); g=zeros(rows,cols); b=zeros(rows,cols); r=double(img); g=double(img); b=double(img); rgbimg=cat(3,r,g,b); en...
  • matlab开发-mrgb2gray

    2019-08-24 14:35:51
    matlab开发-mrgb2gray。函数将RGB图像转换为灰度图像。
  • RGB Bayer 2 gray.rar

    热门讨论 2010-01-28 09:48:22
    RGB Bayer 2 gray.rar Bayer直接成灰度图matlab
  • matlab中将RGB图像转化为灰度图像

    万次阅读 2018-11-06 15:02:43
    MyYuanLaiPic = imread('e:/image/matlab...MyFirstGrayPic = rgb2gray(MyYuanLaiPic);%用已有的函数进行RGB到灰度图像的转换 [rows , cols , colors] = size(MyYuanLaiPic);%得到原来图像的矩阵的参数 MidGr...
  • matlab开发-col2gray

    2019-08-24 14:55:49
    matlab开发-col2gray。此函数用于将RGB图像转换为灰色图像,并在用户响应时进行过滤或不进行过滤。
  • OpenCV将RGB转Gray图的实现: Matlab是个很不错的工具,用起来很方便,先看看Matlab的实现: img = imread('mat.jpg'); //读取一张图片 imshow(img); //显示原始图片 gra
  • 今天第一天学习用matlab进行数字图像处理,先找几个容易的操作练练手,小小的成就感才能让人继续前行 I=imread('aaron.jpg') ...Igray = rgb2gray(I);%将RGB彩色图像转换为灰度图像 figure;%打开一个新窗口 imshow(...
  • C++ RGB转灰度图像

    千次阅读 2016-10-04 14:17:33
    RGB转灰度,通常会使用下面的一个心理学公式:(opencv和matlab中使用的也是该公式)Gray = 0.2989*R + 0.5870*G + 0.1140*B抛却指令优化不谈,优化转化速度的最直接方法就是将浮点运算转化为整数运算:比如我们可以...
  • matlab中,我使用这个:img = rgb2gray(imread('image.png'));在matplotlib tutorial中他们没有覆盖它。他们只是在图像中阅读import matplotlib.image as mpimgimg = mpimg.imread('image.png')然后他们切片数组,...
  • MyYuanLaiPic = imread('e:/image/matlab/...MyFirstGrayPic = rgb2gray(MyYuanLaiPic);%用已有的函数进行RGB到灰度图像的转换 [rows , cols , colors] = size(MyYuanLaiPic);%得到原来图像的矩阵的参数 MidG...
  • 图像格式转换函数——MATLAB dither gray2ind grayslice im2bw ind2gray ind2rgb mat2gray rgb2gray rgb2ind

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 379
精华内容 151
关键字:

matlabrgb转gray

matlab 订阅