精华内容
下载资源
问答
  • 本示例说明了如何应用imfilter函数,使用包含相等权重的5×5滤镜(通常称为平均滤镜)对2D灰度图像进行滤波。该示例还显示了如何使用相同的滤镜对真彩色(RGB)图像进行滤波。真彩色图像是大小为[m,n,3]的矩阵,其中...

    314d5f2425ed57b6a99ff1d6cdabd085.png

    本示例说明了如何应用imfilter函数,使用包含相等权重的5×5滤镜(通常称为平均滤镜)对2D灰度图像进行滤波。该示例还显示了如何使用相同的滤镜对真彩色(RGB)图像进行滤波。真彩色图像是大小为[m,n,3]的矩阵,其中最后一维表示三个颜色通道。使用2-D滤镜滤波真彩色图像等效于使用相同的2-D滤镜分别滤波图像的每个平面。

    有几种执行2D和多维滤波的MATLAB®函数可以与imfilter进行比较。函数filter2执行二维相关,conv2执行二维卷积,convn执行多维卷积。但是,这些滤波功能中的每一个始终将输入转换为double,而输出始终为double。同样,这些MATLAB®滤波函数始终假定输入为零填充,并且不支持其他填充选项。相反,imfilter不会将输入图像转换为double。该imfilter功能还提供了一组灵活的边界填充选项。

    使用均值滤波器滤波二维灰度图像

    将灰度图像读取到工作区中。

     I = imread('coins.png');

    显示原始图像。

     figure
     imshow(I)
     title('Original Image')

    7b897481826bef2d82ad16decb885939.png

    创建一个标准化的5×5均值滤波器。

     h = ones(5,5)/25;

    使用imfilter,将均值滤波器应用于灰度图像。

     I2 = imfilter(I,h);

    显示滤波后的图像。

     figure
     imshow(I2)
     title('Filtered Image')

    2062288a624d3ff4e5d64ed531054847.png

    使用imfilter滤波多维真彩(RGB)图像

    将真彩色图像读入工作区。

     rgb = imread('peppers.png');
     imshow(rgb);

    fa4999ec69dee57fb638f9206ebd9b6b.png

    创建一个滤波器。该均值滤波器包含相等的权重,并使滤波的图像看起来比原始图像更加模糊。

     h = ones(5,5)/25;

    使用imfilter滤波图像并显示。

     rgb2 = imfilter(rgb,h);
     figure
     imshow(rgb2)

    a94463b70ef62d74f19c247ff3e8e4aa.png

    注:本文根据MATLAB官网内容修改而成。

    我推荐给你以下的免费视频教程,特点是没有PPT,不掺水,直接编程环境下的实操课程:

    用100分钟了解MATLAB编程

    《MATLAB编程》视频课程 - 商业数据分析_数据可视化_Tableau免费课程_Tableau培训_自学Tableau_上海_1data.prowww.1data.pro
    4d3603603cd3433d6e2a4f5956d2bb8e.png

    欢迎您进一步了解以下MATLAB系列文章:

    吃小羊:MATLAB作图实例:00:索引zhuanlan.zhihu.com
    8f36c6e5c1b7a6a0444fea667d8fb824.png
    吃小羊:MATLAB金融工具箱:00:索引zhuanlan.zhihu.com
    dd45f05ecd96e96fb87360fa23bb6456.png
    展开全文
  • Matlab程序,自己手动实现rgb图像转灰度图像
  • C++ RGB转灰度图像

    千次阅读 2016-10-04 14:17:33
    RGB转灰度,通常会使用下面的一个心理学公式:(opencv和matlab中使用的也是该公式)Gray = 0.2989*R + 0.5870*G + 0.1140*B抛却指令优化不谈,优化转化速度的最直接方法就是将浮点运算转化为整数运算:比如我们可以...

    RGB转灰度,通常会使用下面的一个心理学公式:(Matlab和OpenCV中使用的也是该公式)

    Gray = 0.2989*R + 0.5870*G + 0.1140*B

    抛却指令优化不谈,优化转化速度的最直接方法就是将浮点运算转化为整数运算:

    比如我们可以将上式转化为:

    Gray = (2989*R + 5870*G + 1140*B)/ 10000,

    但是上面的除法还是不够快,我们完全可以使用移位操作来代替:

    Gray = (4898*R + 9618*G + 1868*B)>> 14

    此外,对大部分计算机视觉应用来说,图像的精度问题不是一个特别敏感的问题,因此我们可以通过降低精度来进一步减少计算量:(我通常使用8位精度)

    Gray = (76*R + 150*G + 30*B)>> 8

    对应的C++ 程序也比较简单:

    bool rgb2gray(unsigned char *src,unsigned char *dest,int width,int height)
    {
        int r, g, b;
        for (int i=0;i<width*height;++i)
        {
            r = *src++; // load red
            g = *src++; // load green
            b = *src++; // load blue
            // build weighted average:
            *dest++ = (r * 76 + g * 150 + b * 30) >>8;
        }
        return true;
    }

    更多精度转换,大家也可以参照下表:

            Gray = (R*1 + G*2 + B*1) >> 2
            Gray = (R*2 + G*5 + B*1) >> 3
            Gray = (R*4 + G*10 + B*2) >> 4
            Gray = (R*9 + G*19 + B*4) >> 5
            Gray = (R*19 + G*37 + B*8) >> 6
            Gray = (R*38 + G*75 + B*15) >> 7
            Gray = (R*76 + G*150 + B*30) >> 8
            Gray = (R*153 + G*300 + B*59) >> 9
            Gray = (R*306 + G*601 + B*117) >> 10
            Gray = (R*612 + G*1202 + B*234) >> 11
            Gray = (R*1224 + G*2405 + B*467) >> 12
            Gray = (R*2449 + G*4809 + B*934) >> 13
            Gray = (R*4898 + G*9618 + B*1868) >> 14
            Gray = (R*9797 + G*19235 + B*3736) >> 15
            Gray = (R*19595 + G*38469 + B*7472) >> 16
            Gray = (R*39190 + G*76939 + B*14943) >> 17
            Gray = (R*78381 + G*153878 + B*29885) >> 18
            Gray = (R*156762 + G*307757 + B*59769) >> 19
            Gray = (R*313524 + G*615514 + B*119538) >> 20
    展开全文
  • Matlab实现的灰度图像转换成RGB图像,效果不错 用Matlab实现的灰度图像转换成RGB图像,效果不错
  • Matlab实现灰度图像转换成RGB图像
  • 图像是怎样构成的?像素对于我们来说并不陌生,在我们购买手机的时候像素的高低是我们参考的重要标准之一。其实任意一幅图像都是由非常多个像素点...在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也能够做到。

    参考资料:

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

    展开全文
  • Matlab实现灰度图像转换成RGB图像

    热门讨论 2009-05-16 10:29:57
    Matlab实现的灰度图像转换成RGB图像,效果不错
  • MATLAB图像二值化,工具:Image Processing Toolbox

    RGB图像转二值图像

    imageRGB = imread('lenna.jpg');
    binary = im2bw(imageRGB,0.4);
    imwrite(binary,'test.jpg');
    

    灰度图像转二值图像

    image = imread('lenna.jpg');
    binary = im2bw(image,0.4);
    imwrite(binary,'test.jpg');
    

    0.4是阈值,你可以换成不同的值,有不同的效果。
    RGB图像:
    在这里插入图片描述
    转换后二值图像:
    在这里插入图片描述

    函数

    im2bw()函数是把RGB图像或者二值图像转换成二值图像的函数

    注意

    使用im2bw可能需要安装MATLAB附加资源。如果你之前没有安装的话,执行时,MATLAB会提醒你安装工具集Image Processing Toolbox

    展开全文
  • 求分享Matlab实现灰度图像转换成RGB图像的代码</p>
  • 问题:我正尝试使用matplotlib读取RGB图像并将其转换为灰度。在matlab中,我使用这个:img = rgb2gray(imread('image.png'));在matplotlib tutorial中他们没有覆盖它。他们只是在图像中阅读import matplotlib.image ...
  • 之前学FPGA 先要要应用在图像方面,在网上也找了很多资料,matlab算是资源最多了的,博主本着学习的目的,将每天所学的写成笔记,方便以后的复习,同时也可以让...rgb转灰度 Gray = R0.299 + G0.587 + B*0.114 ...
  • functionlsl_rgb2gray()%%%%%%%%%%%彩色图像批量转灰度图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2009年6月29日%%%%%%%%%%%%%%%%%%%%%%pathname=uigetdir(cd,'请选择文件夹');ifpathname==0msgbox('您没有正确选择...
  • matlab中将RGB图像转化为灰度图像

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

    千次阅读 2020-01-27 23:22:24
    真彩图(RGB图像)转换为灰度RGB=imread("peppers.png"); Gray=rgb2gray(RGB); figure,imshow(RGB); figure,imshow(Gray); RGB颜色图转换为灰度图 读取RGB颜色图的索引图像,然后将颜色图转换为灰度 [X,...
  • RGB灰度图像的转换原理

    千次阅读 2019-04-21 21:26:59
    转换公式简单来说,就是把RGB3个通道的分量按照一定的比例计算到灰度图像中。 Gray = R0.299 + G0.587 + B0.114 matlab实现转换(直接显示使用rgb2gray函数) img=imread(‘face1.jpeg’); [m,n,h] = size(img); ...
  • gray_level_conversion 使用Matlab进行RGB格式的图像灰度转换
  • RGB转灰度,通常会使用下面的一个心理学公式:(Matlab和OpenCV中使用的也是该公式) Gray = 0.2989*R + 0.5870*G + 0.1140*B 实现代码如下 #include //通过上述计算公式得到灰度图像 void ...
  • 如果文件中既有彩色图像又有灰度图像,则用如下代码 path = 'E:\python论文及代码\新建文件夹 (4)\imagefusion_densefuse-master\coco2014\train2014\'; save_path = 'E:\python论文及代码\新建文件夹 (4)\image...
  • 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'); % 存储为灰度图像
  • 如图,有没有大佬知道问题出在哪里呀
  • %matlab基本图像处理 I = imread('yellowlily.jpg'); >> gI = rgb2gray(I); >> bwI = im2bw(gI); >> eI = edge(bwI,'canny'); >> subplot(2,2,1);imshow(I); >> subplot(2,2,2);...
  • RGB图像转化为灰度图原理以及MATLAB实现1 原理在RGB彩色模型中表示的图像由三个分量图像组成,每种原色一幅分量图像。利用MATLAB图像进行读取,可以知道存储RGB图像数据为256*256 *3 uint8,其中256*256表示长和宽...
  • 问题:我正尝试使用matplotlib读取RGB图像并将其转换为灰度。在matlab中,我使用这个:img = rgb2gray(imread('image.png'));在matplotlib tutorial中他们没有覆盖它。他们只是在图像中阅读import matplotlib.image ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 444
精华内容 177
关键字:

matlabrgb转灰度图像

matlab 订阅