精华内容
下载资源
问答
  • MATLAB图像处理预处理的像素变幻RGB灰度直方 你好!首先我们来进行matlab的学习进步,了解到matlab里面自带的图像数据处理库,功能很强大。 可以进行MATLAB图像处理预处理的像素变幻RGB灰度直方的绘制 ...

    MATLAB图像处理预处理的像素变幻RGB与灰度直方图

    你好!首先我们来进行matlab的学习进步,了解到matlab里面自带的图像数据处理库,功能很强大。
    可以进行MATLAB图像处理预处理的像素变幻RGB与灰度直方图的绘制

    【参考博文】地址:https://blog.csdn.net/jiugedexiaodi/article/details/79661441

    视觉效果如图在这里插入图片描述
    直方图效果图在这里插入图片描述

    可以在参数表的工作区查找自定义的数据矩阵:
    在这里插入图片描述
    用MATLAB打开一张图像可以发现在工作区中就会多一个变量,这个变量是一个三维数组,第一维代表图像的X坐标,第二维代表图像的Y坐标,第三维代表R、G、B,第三维中的数字1代表R,数字2代表G,数字3代表B。
    如下图,我打开一张图片,在MATLAB工作区就会出现这样一个变量,变量名字是可以自己设定的

    源码如下

    选择一款你喜欢的代码片高亮样式,下面展示同样高亮的代码:

    clc;
    clear all;
    
    original_picture=imread('D:\Matlab\Simulinks\slprj\mmjk.png');
    %读取一张图片,并显示类型可以是jpg和png格式的
    subplot(2,2,1);
    imshow(original_picture);
    title('原始图像的直方图')
    
    %分别读取RGB的值,1代表R2代表G3代表B
    image_r=original_picture(:,:,1);
    image_g=original_picture(:,:,2);
    image_b=original_picture(:,:,3);
    subplot(222)
    imshow(image_r);
    title('R  Part');
    subplot(223)
    imshow(image_g);
    title('G  Part');
    subplot(224)
    imshow(image_b);
    title('B  Part');
    
    
    %画直方图
    GrayPic=rgb2gray(original_picture);
    %RGB图像转化成灰度图像,
    %imhist()函数的参数好像只能是二维的图像,不能是三维的,所以这里先把原始彩色图像转化为灰度图像
    hist_image=imhist(GrayPic);%原始图像的灰度图像的直方图
    hist_r=imhist(image_r);%R部分的直方图
    hist_g=imhist(image_g);%G部分的直方图
    hist_b=imhist(image_b);%B部分的直方图
    figure(2)
    subplot(221)
    bar(hist_image);
    title('原始图像的灰度图像的直方图')
    
    subplot(222)
    bar(hist_r);
    title('R部分的直方图')
    subplot(223)
    bar(hist_g);
    title('G部分的直方图')
    subplot(224)
    bar(hist_b);
    title('B部分的直方图')
    
    

    导入参考:

    欢迎各位同仁继续你们的创作。
    【参考博文】地址:
    [1]: https://blog.csdn.net/jiugedexiaodi/article/details/79661441
    [2]:https://blog.csdn.net/qq_36554582/article/details/82927310?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=5bd5afe4-9bdb-45a9-8e6f-972a67603480&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control

    展开全文
  • % matlab彩色图像分离通道并合并成处理后的彩色图像(彩色变灰度彩色) % 白平衡算法(灰度世界法)消除RGB受光照影响 clear all; close all; %读入原始图像 srcImage = imread('7.jpg'); figure,imshow...
    % matlab彩色图像分离通道并合并成处理后的彩色图像(彩色变灰度再变彩色)
    % 白平衡算法(灰度世界法)消除RGB受光照影响
    clear all;
    close all;
    %读入原始图像
    srcImage = imread('7.jpg');
    figure,imshow(srcImage);
    srcImageGray = rgb2gray(srcImage);
    figure,imshow(srcImageGray);
    %白平衡算法
    R = srcImage(:,:,1);
    G = srcImage(:,:,2);
    B = srcImage(:,:,3);
    %求其各通道平均值及增益
    Raver = mean(mean(R));
    Gaver = mean(mean(G));
    Baver = mean(mean(B));
    K = (Raver+Gaver+Baver)/3;
    Kr = K/Raver;
    Kg = K/Gaver;
    Kb = K/Baver;
    %更新RGB值
    Rnew = R*Kr;
    Gnew = G*Kg;
    Bnew = B*Kb;
    %合并通道
    % [m,n,k] = size(srcImage);
    % dstImage = zeros(m,n,k);
    dstImage(:,:,1) = Rnew;
    dstImage(:,:,2) = Gnew;
    dstImage(:,:,3) = Bnew;
    
    figure,imshow(dstImage);
    dstImageGray = rgb2gray(dstImage);
    figure,imshow(dstImageGray);

    结果图如下:

    原图:

    白平衡后图:

     

    转载于:https://www.cnblogs.com/ggYYa/p/5712176.html

    展开全文
  • 基于matlab的图像线性灰度变换

    千次阅读 2019-11-14 21:36:48
    1.基本线性灰度变换 只需要记住一个公式:g(x, y) = f(x, y) * tan a 当 tan a >1时,会使得图像亮 当tan a =1时,前后图像不发生变化 当tan a<1时,图像暗 Image =im2double(rgb2gray(imread('...

    1.基本线性灰度变换


    只需要记住一个公式:g(x, y) = f(x, y)  * tan a 

    当 tan a >1时,会使得图像变亮

    当tan a =1时,前后图像不发生变化

    当tan a<1时,图像变暗

    Image =im2double(rgb2gray(imread('hehua.bmp')));
    [h, w] = size(Image);
    Image1 = zeros(h,w);
    Image2 = zeros(h,w);
    Image3 = zeros(h,w);
    for i = 1:h
        for j = 1:w
           Image1(i,j)= Image(i, j)* tan(0.1 * pi);
           Image2(i,j)= Image(i, j)* tan(0.25 * pi); 
           Image3(i,j)= Image(i, j)* tan(0.4 * pi); 
        end
    end
    subplot(221),imshow(Image),title('原图');
    subplot(222),imshow(Image1),title('变暗');
    subplot(223),imshow(Image2),title('不变');
    subplot(224),imshow(Image3),title('变亮');

    运行后的结果为:


    2.分段线性灰度变换

    分段线性灰度变换的原理很简单,例如将[0,a]范围内的灰度值转换好[0,c]内,实际就是求O A直线方程,然后一个横坐标对应一个纵坐标,图中OA反应了[0,a]被压缩到了[0,c] ,同理[a,b]被扩展到了[c,d]。

    Image = imread('hehua.bmp');
    Image = im2double(rgb2gray(Image));
    [h, w] =size(Image);
    % 分段线性灰度变换
    Image1 = zeros(h, w); %(行,列)
    a = 30/256;
    b = 100/256;
    c = 75/256;
    d = 200/256;
    
    for i=1:h
        for j= 1:w
            if Image(i,j)<=a
               Image1(i,j) = c/a * Image(i, j); 
            elseif Image(i,j)<b
                Image1(i,j) = (d-c)/(b-a)*(Image(i,j) - a) + c;
            else
                Image1(i,j) = (1-d)/(1-b)*(Image(i,j) - b) +d;
            end
        end
    end
    % 高低端灰度不变
    Image2 = Image;
    for x =1:h
        for y=1:w
            if a<Image(x, y)<b
                Image2(x,y) = (d-c)/(b-a)*(Image(x,y) - a) + c;
            end
        end
    end
    
    % 截取式灰度变换
    Image3 = imadjust(Image, [a;b], [c;d]);
    %[a;b]为要变换的灰度空间   [c,d]为要变换到的灰度空间
    %小于a的被直接赋值为c   大于b的被直接赋值为b
    
    subplot(141),imshow(Image),title('原图');
    subplot(142),imshow(Image1),title('分段灰度变换');
    subplot(143),imshow(Image2),title('高低端灰度不变');
    subplot(144),imshow(Image3),title('截取式灰度变换');
    
    

    结果为:

    另外,分段线性灰度变换还有一种叫做切片的操作直接码

    Image = im2double(rgb2gray(imread('X.jpg')));
    [h, w] = size(Image);
    a= 170/256 ; b = 200/256; c= 35/256; d =250/256;
    Image1 = zeros(h,w);
    Image2 = Image;
    for i=1:h
       for j=1:w
          if Image(i,j)<c
                Image1(i,j)=c;
          else
              Image1(i,j)=d;
          end
       end
    end
    
    for x=1:h
       for y=1:w
          if c<Image(x,y)<b
              Image2(x,y)=0;
          end
       end
    end
    subplot(131),imshow(Image),title('原图');
    subplot(132),imshow(Image1),title('第一种切法');
    subplot(133),imshow(Image2),title('第二种切法');

    运行结果:

    展开全文
  • 直方均衡化 当一幅图像基调过暗或过亮时需要对其进行必要的处理使得图像明暗均匀视觉效果得更为理想 通过直方均衡化做适当的调整即把一幅已知灰度概率分布图像中的像素灰度做某种映射变换使它变成一幅具有...
  • 13.1.2 直方图灰度变换 13.1.3 直方均衡化 13.1.4 直方规定化 13.2 空域滤波增强 13.2.1 平滑滤波器 13.2.2 锐化滤波器 13.3 频域增强 13.3.1 低通滤波器 13.3.2 高通滤波器 13.3.3 同态...
  • MATLAB图形图像处理

    热门讨论 2011-01-03 12:20:11
    13.1.2 直方图灰度变换 13.1.3 直方均衡化 13.1.4 直方规定化 13.2 空域滤波增强 13.2.1 平滑滤波器 13.2.2 锐化滤波器 13.3 频域增强 13.3.1 低通滤波器 13.3.2 高通滤波器 13.3.3 同态滤波器 13.3.4...
  • 13.1.2 直方图灰度变换 13.1.3 直方均衡化 13.1.4 直方规定化 13.2 空域滤波增强 13.2.1 平滑滤波器 13.2.2 锐化滤波器 13.3 频域增强 13.3.1 低通滤波器 13.3.2 高通滤波器 13.3.3 同态滤波器 13.3.4...
  • 13.1.2 直方图灰度变换 13.1.3 直方均衡化 13.1.4 直方规定化 13.2 空域滤波增强 13.2.1 平滑滤波器 13.2.2 锐化滤波器 13.3 频域增强 13.3.1 低通滤波器 13.3.2 高通滤波器 13.3.3 同态滤波器 13.3.4...
  • 8位灰度图 %% 生成图像 %大小:640*512 %类型:灰度图 %灰度值:列按照0-255渐变,故命名为column shade。 clc,clear all,close all; %输入的图 ima=double(imread('lenna2.bmp'));%原图 ima=rgb2gray(ima...

    图像大小:640×512

    8位灰度图

    %% 生成图像
    %大小:640*512
    %类型:灰度图
    %灰度值:列按照0-255渐变,故命名为column shade。
    clc,clear all,close all;
    %输入的图
    ima=double(imread('lenna2.bmp'));%原图
    ima=rgb2gray(ima);
    ima(:,:)=255;
    for j=1:640
        if j>=1&&j<=256
            ima(:,j)=j-1;
        elseif j>=257&&j<=512
            ima(:,j)=j-257;
        else
            ima(:,j)=j-513;
        end
    end
    imshow(uint8(ima)),title('columnshade');
    imwrite(uint8(ima),'columnshade.bmp');

     效果:

     

     

    24位:

    %% 生成图像
    %大小:640*512
    %类型:灰度图
    %灰度值:列按照0-255渐变,故命名为column shade。
    clc,clear all,close all;
    %输入的图
    ima=double(imread('lenna2.bmp'));%原图
    ima(:,:,:)=255;
    for j=1:640
        if j>=1&&j<=256
            ima(:,j,:)=j-1;
        elseif j>=257&&j<=512
            ima(:,j,:)=j-257;
        else
            ima(:,j,:)=j-513;
        end
    end
    imshow(uint8(ima)),title('columnshade');
    imwrite(uint8(ima),'columnshade.bmp');

     

    转载于:https://www.cnblogs.com/wxl845235800/p/9996411.html

    展开全文
  • Matlab 对图片的二值化处理

    千次阅读 2017-03-23 21:39:37
    这几天做了一道题目,要求在 5000 张图片中找出 30 张与样例相同但经过放大或缩小,高亮或暗的图片。... 如果原本的一个像素点的rgb值为(r1,g1,b1),一个比较简易的方法转为灰度图,  就是 gray1=(r1*299+g1*587
  • g=rgb2gray(p); % 转为灰阶gg=double(g) % 转为数值矩阵%gg=gg/255; % 将彩色值转为 0-1 的渐变值[x,y]=size(gg); % 取原大小[X,Y]=meshgrid(1:y,1:x); % 以原大小构建网格figuremesh(X,Y,gg); % 网格上画出...
  • BMP格式读取 保存 DFT FFT 直方图 色调均化 缩放 模糊 锐化 滤镜 形态学处理 曲线 裁剪 灰度图 彩色图 自动阈值 等等...除此之外还有很多其他小功能... 建议使用VS2013打开!!!核心代码在Bmp.cpp中!!! 更新...
  • 实验一 内容一 1彩色图像变灰度... figure subplot(1,2,1, imshow(A) title'原) subplot(1,2,2, imshow(B) title'原图灰度图像) 2彩色图像索引图像 A=imread'1.jpg; figure subplot(1,2,1, imshow(A) title'原)
  • 一、简介 1 原理分析 2 编程过程 ...%读图像并将rgb图像转化为灰度图象,为了节省cpu时间,将图像小为原来大小的1/2 im=imread('3.bmp'); im=rgb2gray(im); im=double(im); im = imresize( im, 0.5 );
  • %用处:选择一幅彩色图像,将其灰度图,再做上下、左右颠倒,逆时针90°,顺时针180°figure(1);RGB = imread('my.jpg','jpg');%此时 my.jgp文件在默认的路径下,否则GRB=imread(‘路径’);subplot(3,2,1);...
  • 一、简介 1 原理分析 2 编程过程 ...%读图像并将rgb图像转化为灰度图象,为了节省cpu时间,将图像小为原来大小的1/2 im=imread('3.bmp'); im=rgb2gray(im); im=double(im); im = imresize( im, 0.5 );
  • 数字图像处理实验程序matlab 实验一 内容(一) (1)彩色图像变灰度图像 A=imread( 1.jpg ); B=rgb2gray(A); figure subplot(1,2,1), imshow(A) title( 原 ) subplot(1,2,2), imshow(B) title( 原图灰度图像 ) (2)...
  • 图像工程的一个作业、参考教材做的1、大津阈值法使用大津阈值法...%先把彩色图变灰度图 %figure(1) subplot(221) imshow(I); title('原图'); I=rgb2gray(I); subplot(222) imshow(I); title('灰度图'); level = gra...
  • VC++ matlab图像处理

    2013-09-15 15:17:54
    13.1.2 直方图灰度变换 13.1.3 直方均衡化 13.1.4 直方规定化 13.2 空域滤波增强 13.2.1 平滑滤波器 13.2.2 锐化滤波器 13.3 频域增强 13.3.1 低通滤波器 13.3.2 高通滤波器 13.3.3 同态滤波器 13.3.4...
  • 图像工程的一个作业、参考教材做的1、大津阈值法使用大津阈值法...%先把彩色图变灰度图 %figure(1) subplot(221) imshow(I); title('原图'); I=rgb2gray(I); subplot(222) imshow(I); title('灰度图'); level = gra...
  • matlab 图像处理技术

    2019-04-12 21:31:01
    一、图像处理预备知识1、图像处理(image processing)用计算机对图像...在计算机中,按照颜色和灰度的多少可以将图像分为二值图像、灰度图像、索引图像和真彩色RGB图像四种基本类型。2、图像处理常用方法1)图像...
  • 灰度图上进行 每个像素点处设一个阈值 领域 一般使用领域内标准差,标准差表示对比度 全局平均还是领域平均看情况自己选择 求标准差、均值前一定要图像转换为float类型,tofloat不是matlab内置函数,需要自己添加 ...
  • matlab遇到的问题

    2018-04-18 16:59:02
    1、两张图片相加减 变成同一种类型,double(x),unit8(x). 2、输出图片 imshow(x);... %在high和low之间的像素按比例显示,低于这个区间的...3、jpg图片要处理前要变灰度图片 f=rgb2gray(f); 4、for与if ...
  • 但有时需要单一的颜色以更加直观的表现出像元值的高低,Matlab只提供了Gray灰度显示,下面给出自定义色带范围的代码: imagesc(A); r = linspace(1,45/255,10)’; %R=45 g = linspace(1,110/255,10)’; %G=110 b = ...
  • 文件:打开、显示、重载、RGB变灰度、保存; 几何变换:垂直、水平镜像,图像转置、平移、缩放、旋转; 正交变换:FFT、DFT、DCT、DST、DHT、DWasht; 灰度处理:反色、直方均衡、阈值变换、阈值变换、分段线性变换...
  • matlab常用代码总结

    2020-06-19 15:58:28
    - imshow 整理关于复数 如果用imshow(a),而且a... %这里最好是转换成灰度图像处理,不然。。。貌似结果会得非常奇怪。 I = im2double(I); imshow(I) imshow(I,[]) %I中最大的作为255,最小的作为0 imshow(I,[2 50]
  • 图像增强的实现

    2012-06-07 15:42:03
    1. 直方均衡化的 Matlab 实现 1.1 imhist 函数 功能:计算和显示图像的色彩直方 格式:imhist(I,n) imhist(X,map) 说明:imhist(I,n) 其中,n 为指定的灰度级数目,缺省值为256;imhist(X,map) 就算和显示索引...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

matlab灰度图变rgb

matlab 订阅