matlab灰度图像处理_matlab 图像处理灰度图像 - CSDN
  • matlab文字识别与提取: 1.图像转换为数字矩阵 ...rgb2gray :通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能 gdata = rgb2gray(data); ...

    matlab文字识别与提取:

    1.图像转换为数字矩阵

    将图像读取为一个矩阵

    data = imread('C:\Users\10378\Desktop\学习\test\test.jpg');

     

    2.灰度化处理

    rgb2gray :通过消除图像色调和饱和度信息同时保留亮度实现将将RGB图像或彩色图转换为灰度图像,即灰度化处理的功能

    gdata = rgb2gray(data);

     

    3.二值化

    graythresh :最大类间方差法是一种自适应的阈值确定的方法,又叫大津法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标2部分。在使用im2bw函数将灰度图像转换为二值图像时,需要设定一个阈值,这个函数可以帮助我们获得一个合适的阈值。

    n = graythresh(data);     

    %0<n<1,n为阈值

    BW = im2bw(data, n);

    %im2bw 只能将处理两种颜色的图像,它将灰度图像转变成二进制图像BW

    %data[i][j]*n>125,则BW[i][j]=1,否则BW[i][j]=0

     

    4.显示图片

    imshow(gdata);

     

    完整代码:

    data = imread('C:\Users\10378\Desktop\学习\test\test.jpg');
    
    data
    
    subplot(221);
    
    imshow(data);
    
    gdata = rgb2gray(data);
    
    subplot(222);
    
    imshow(gdata);
    
    n = graythresh(gdata);
    
    subplot(223);
    
    imshow(bw);
    
    bw=im2bw(data,n);

     

    结果:

    展开全文
  • close all;%关闭所有窗口 clear;%清除变量的状态数据 clc;%清除命令行 wangpic=imread('lenargb.bmp'); figure;%打开一个新窗口 imshow(wangpic); title('1 lena的原图'); ...imshow(wangpic

    close all;%关闭所有窗口
    clear;%清除变量的状态数据
    clc;%清除命令行

    wangpic=imread('lenargb.bmp');
    figure;%打开一个新窗口
    imshow(wangpic);
    title('1 lena的原图');

    wangpicgray=rgb2gray(wangpic);
    figure;%打开一个新窗口
    imshow(wangpicgray);
    title('2lena的灰度图');

    %自己灰度化
    [width,heigth,bmsize]=size(wangpic);
    myjsgray=uint8(zeros(width,heigth));
    for i=1:width
         for j=1:heigth
             myjsgray(i,j)=wangpic(i,j,1)*0.299+wangpic(i,j,2)*0.587+wangpic(i,j,3)*0.114;
         end
    end   
    figure;
    imshow(myjsgray);
    title('3 lena 自己计算灰度图');


    wanpic=imread('guazi.bmp');
    figure;%打开一个新窗口
    imshow(wanpic);
    title('4瓜子的原图');

    wanpicgray=rgb2gray(wanpic);
    figure;%打开一个新窗口
    imshow(wanpicgray);
    title('5 瓜子的灰度图');

    %自己灰度化
    [width,heigth,bmsize]=size(wanpic);
    myjsgrayguazi=uint8(zeros(width,heigth));
    for i=1:width
         for j=1:heigth
             myjsgrayguazi(i,j)=wanpic(i,j,1)*0.299+wanpic(i,j,2)*0.587+wanpic(i,j,3)*0.114;
         end
    end   
    figure;
    imshow(myjsgrayguazi);
    title('6 瓜子 自己计算灰度图');


     

    展开全文
  • 图像处理matlab

    2018-09-11 22:35:04
    1.基本函数: iread('文件路径'); idisp(); 2.一元操作: imd=idouble(im);... //将彩色图像转变成灰度图像。 ihist();//显示每一个像素值出现的次数 im=igamma(im,1/0.45); //伽马编码,一种非线性一...

    1.基本函数:

    iread('文件路径');

    idisp();

    2.一元操作:o[u,v]=f(I[u,v])

    imd=idouble(im);  //将像素从unit8(范围在0-255的整数像素)到范围在[0,1]的双精度值

    grey=imono(im);    //将彩色图像转变成灰度图像。

    ihist();//显示每一个像素值出现的次数

    im=igamma(im,1/0.45); //伽马编码,一种非线性一元操作

    3.二元操作:o[u,v]=f(I_{1}[u,v],I_{2}[u,v])

    isamesize(image1,image2);  //将2缩放并裁剪到跟1相同的大小

    ........

    4.空间操作o[u,v]=f(I[u+i,v+j])

     

    4.1互相关 o[u,v]=\sum _{(i,j)\epsilon w }I[u+i,v+j]K[i,j], K是互相关核,对于每一个输出像素,对应输入图像中的像素窗口w要逐个元素地与互相关核K相乘。

    在工具箱中,互相关使用函数iconv表示。iconv(image,K);

     

    4.1.1平滑处理(光滑化、模糊化或者散焦)

    K=ones(21,21)/21^2; //每一个输出像素都是输入图像中与之相对应的21x21相领像素的平均值  ->平均值滤波

    G(u,v)=\frac{1}{2\pi\sigma ^{2} }e^{-\frac{u^{2}+v^{2}}{2\sigma ^{2}}}  二维高斯函数(关于原点对称,曲线下方体积为1)的扩展由标准差参数\sigma控制。 ->高斯滤波

    K=kguass(5); //指定标准差为5像素

     

    4.1.2边界检测:
     lena=iread('C:\Users\Administrator\Desktop\matlab实验照片\2.jpeg','double','grey');

     p=lena(60,:);  //在v=60处图像中的一条水平线

    沿着这个横截面的一阶倒数是p^{^{'}}[v]=p[v]-p[v-1],一阶倒数可以用diff函数计算。->亮度变化的倒数

    在v点处的导数也可以写成对称的一阶差分:p^{^{'}}[v]=\frac{1}{2}(p[v+1]-p[v-1])

    它等同于和下面的一维互相关核求互相关运算:

                                                                     K=(-\frac{1}{2} 0 \frac{1}{2})

    将图像与这个核求互相关:

    K=[-0.5 0 0.5];

    idsip(iconv(lena,K),'invsigned')    ->图片具有高水平梯度的竖直边缘清晰可见。效果如下所示(上面为原图):

      

    利用索伯互相关核计算水平梯度,利用三行水平梯度的加权值。

    Du=ksobel,上图为原图,下面为处理之后的

    坎尼算子:

    算法大致流程:

    1、求图像与高斯平滑滤波器卷积:

    2、使用一阶有限差分计算偏导数的两个阵列P与Q:

    3、幅值和方位角:

    4、非极大值抑制(NMS ) :细化幅值图像中的屋脊带,即只保留幅值局部变化最大的点。

    将梯度角的变化范围减小到圆周的四个扇区之一,方向角和幅值分别为:

    非极大值抑制通过抑制梯度线上所有非屋脊峰值的幅值来细化M[i,j],中的梯度幅值屋脊.这一算法首先将梯度角θ[i,j]的变化范围减小到圆周的四个扇区之一

    edges=icanny(lena,2);效果如下所示:

    4.2模板匹配O[u,v]=s(T,W)

    函数s(T,W)是一个标量测度,用来描述两幅相同大小的图像T和W之间的相似性。

    常用方法有:绝对差值(SAD),差值平方和(SSD)以及互相关(NCC)

     

    展开全文
  • 灰度图像灰度图像转化rgb2gray灰度图像转化rgb2ind灰度图像向索引图像的转换gray2ind将灰度图像转换为索引图像grayslice索引图像转换为灰度图像ind2gray索引图像转换为真彩色图像ind2rgb灰度图像转换为二值图像im2bw...

    灰度图像转化rgb2gray

    matlab_Code
    close all; %关闭当前所有图形窗口
    clear all; %清空工作空间变量
    clc; %清屏
    X=imread(‘football.jpg’); %读取文件格式为.jpg,文件名为football的RGB图像的信息
    I=rgb2gray(X); %将RGB图像转换为灰度图像
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    subplot(121),imshow(X); %显示原RGB图像
    subplot(122),imshow(I); %显示转换后灰度图像
    Result在这里插入图片描述

    灰度图像转化rgb2ind

    close all; %关闭当前所有图形窗口
    clear all; %清空工作空间变量
    clc; %清屏
    RGB = imread(‘football.jpg’); %读取图像信息
    [X1,map1]=rgb2ind(RGB,64); %将RGB图像转换成索引图像,颜色种数N是64种
    [X2,map2]=rgb2ind(RGB,0.2); %将RGB图像转换成索引图像,颜色种数N是216种
    map3= colorcube(128); %创建一个指定颜色数目的RGB颜色映射表
    X3=rgb2ind(RGB,map3);
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    figure;
    subplot(131),imshow(X1,map1); %显示用最小方差法转换后索引图像
    subplot(132),imshow(X2,map2); %显示用均匀量化法转换后索引图像
    subplot(133),imshow(X3,map3); %显示用颜色近似法转换后索引图像
    在这里插入图片描述

    灰度图像向索引图像的转换gray2ind

    close all %关闭当前所有图形窗口
    clear all; %清空工作空间变量
    clc %清屏
    I = imread(‘cameraman.tif’) %读取灰度图像信息
    [X,map]=gray2ind(I,8); %实现灰度图像向索引图像的转换,N取8
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    figure,imshow(I); %显示原灰度图像
    figure, imshow(X, map); %显示N=8转换后索引图像
    在这里插入图片描述
    在这里插入图片描述

    将灰度图像转换为索引图像grayslice

    close all; %关闭当前所有图形窗口
    clear all; %清空工作空间变量
    clc; %清屏
    I = imread(‘coins.png’); %读取图像信息
    X = grayslice(I,32); %将灰度图像转换为索引图像
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    figure,imshow(I); %显示原图像
    figure,imshow(X,jet(32)); %jet(M)是相当于colormap,是一个M×3的数组
    在这里插入图片描述
    在这里插入图片描述

    索引图像转换为灰度图像ind2gray

    close all; %关闭当前所有图形窗口
    clear all; %清空工作空间变量
    clc; %清屏
    [X,map]=imread(‘forest.tif’);%像信息
    I = ind2gray(X,map); %再将索引图像转换为灰度图像
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    figure,imshow(X,map); %将索引图像显示
    figure,imshow(I); %将灰度图像显示
    在这里插入图片描述
    在这里插入图片描述

    索引图像转换为真彩色图像ind2rgb

    [X,map]=imread(‘kids.tif’); %读取图像信息
    RGB=ind2rgb(X,map); %将索引图像转换为真彩色图像
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    figure, imshow(X,map); %显示原图像
    figure,imshow(RGB); %显示真彩色图像

    在这里插入图片描述

    灰度图像转换为二值图像im2bw

    I=imread(‘rice.png’); %读取图像信息
    BW1=im2bw(I,0.4); %将灰度图像转换为二值图像,level值为0.4
    BW2=im2bw(I,0.6); %将灰度图像转换为二值图像,level值为0.6
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    figure;
    subplot(131),imshow(I); %显示level=0.4转换后的二值图像
    subplot(132),imshow(BW1); %显示level=0.5转换后的二值图像
    subplot(133),imshow(BW2); %显示level=0.6转换后的二值图像

    在这里插入图片描述

    索引图像转换为二值图像im2bw

    load trees; %从文件‘trees。mat’中载入数据到workplace
    BW = im2bw(X,map,0.4); %将缩=索引图像转换为二值图像
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    figure, imshow(X,map); %显示原索引图像
    figure, imshow(BW); %显示转换后二值图像

    在这里插入图片描述
    在这里插入图片描述

    RGB图像转换为二值图像im2bw

    I=imread(‘pears.png’); %读取图像信息
    BW=im2bw(I,0.5); %将RGB图像转换为二值图像
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    figure,
    subplot(121),imshow(I); %显示原图像
    subplot(122),imshow(BW); %显示转换后二值图像

    在这里插入图片描述

    矩阵J转换为灰度图像mat2gray

    X=magic(256);
    I= mat2gray(X); %将矩阵J转换为灰度图像
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    imshow(I); %显示转换后灰度图像
    在这里插入图片描述

    对灰度图像G进行2次滤波,实现边缘检测filter2

    I=imread(‘tire.tif’); %读取图像信息
    H=[1 2 1;0 0 0;-1 -2 -1]; %设置subol算子
    X=filter2(H,I); %对灰度图像G进行2次滤波,实现边缘检测
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]); %修改图形背景颜色的设置
    figure,
    subplot(131),imshow(I);
    subplot(132),imshow(X,[]),colorbar(); %显示图像,并添加颜色条
    subplot(133),imshow(X,[]),colorbar(‘east’);
    在这里插入图片描述

    读取多帧图像序列

    close all; %关闭当前所有图形窗口
    clear all; %清空工作空间变量
    clc; %清屏
    I=zeros(128,128,1,27); %建立四维数组I
    for i=1:27
    [I(:,:,:,i),map]=imread(‘mri.tif’,i); %读取多帧图像序列,存放在数组I中
    end
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]) %修改图形背景颜色的设置
    montage(I,map); %将多帧图像同时显示
    在这里插入图片描述

    二维图像纹理映射三维球体表面warp

    clc; %清屏
    %I=imread(‘testpat.png’);
    I=imread(‘football.jpg’); %读取图像信息
    [x,y,z]=sphere; %创建三个(N+1)×(N+1)的矩阵,使得surf(X,Y,Z)建立一个球体,缺省时N取20
    set(0,‘defaultFigurePosition’,[100,100,1000,400]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]) %修改图形背景颜色的设置
    figure,
    subplot(121),warp(I); %显示图像映射到矩形平面
    subplot(122),warp(x,y,z,I); %将二维图像纹理映射三维球体表面
    grid; %建立网格
    在这里插入图片描述

    交互式用鼠标选择像素

    clc; %清屏
    RGB = imread(‘peppers.png’); %读取图像信息
    c = [12 146 410]; %新建一个向量c,存放像素纵坐标
    r = [104 156 129]; %新建一个向量r,存放像素横坐标
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]) %修改图形背景颜色的设置
    pixels1=impixel(RGB) %交互式用鼠标选择像素
    pixels2= impixel(RGB,c,r) %将像素坐标作为输入参数,显示特定像素的颜色值

    图像像素信息显示工具impixelinfo

    close all; %关闭当前所有图形窗口
    clear all %清空工作空间变量
    clc; %清屏
    set(0,‘defaultFigurePosition’,[100,100,1000,500]); %修改图形图像位置的默认设置
    set(0,‘defaultFigureColor’, [1 1 1]) %修改图形背景颜色的设置
    h = imshow(‘hestain.png’); %显示图像
    hp = impixelinfo; %创建图像像素信息显示工具
    set(hp,‘Position’,[150 290 300 20]); %设置像素信息工具显示的位置
    figure
    imshow(‘trees.tif’);
    impixelinfo %创建图像像素信息显示工具
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 前两节都是熟悉一下怎么在matlab底下对图片做一些操作,并没有什么卵用,这一节稍微有点卵用,灰度变换一般是图像处理的第一步。 数字图像处理实验1-9点击下列链接有源码和链接: matlab数字图像处理实验 ...
  • 基于MATLAB的数字图像处理———灰度变换与空间滤波 对于图像平面,定义为二维函数 f (x,y),其中x,y分别为空间横竖坐标。当f,x,y都是有限离散值时,图像即为数字图像。 一、图像的输入/输出和显示 相关函数: ...
  • 首先先来明白几个概念: 1、彩色图像(RGB):图像的每个像素点都是由红(R)、绿(G)、蓝(B)三个分量来表示的,每一个分量一般分别介于0-255之间,当然如果每一个颜色分量用更多的位数去...2、灰度图像(gra...
  • 将彩色图像转换为灰度图像的过程称为灰度化处理。 对于图像而言,灰度化处理就是使彩色的R,G,B分量值相等的过程。 灰度化处理的方法主要有如下3种: 最大值法:使R,G,B的值等于3值中最大的一个,R=G=B=max(R,G,B...
  • MATLAB图像灰度处理

    2020-07-24 23:33:56
    MATLAB灰度化MATLAB图像灰度化处理,三种灰度算法
  • 灰度分为256阶,用灰度表示的图像称作灰度图.在图像中用0~255表示,0是全黑,255是全白 2.对比度:对比度值一幅图像中敏感区域最亮的白和最暗的黑之间的不同亮度层级的测量,差异范围越大代表对比月大。好的对比率...
  • matlab 灰度图像直方图均衡化
  • matlab图像进行二值化处理 >>m = imread('d:\image\logo.jpg'); >> imshow(n); >... n = graythresh(data);...用matlab图像灰度处理 data = imread('d:\image\photo.jpeg'); imshow(data); ...
  • MATLAB灰度图像拉伸

    2020-07-30 23:30:53
    %输入图像转化为灰度图像 %如果输入的图像已经是灰度图像,则不需要此步骤 subplot(2,2,1),imshow(J) title('原始灰度图') subplot(2,2,2),imhist(J) title('原始灰度直方图') K=imadjust(J); %灰度拉伸,使用函数...
  • 使用matlab语言,实现灰度图像的形态学处理,包括腐蚀、膨胀及顶帽变换操作。
  • 写在前头:说到数字图像处理,不得不提起MATLAB。这是一款非常方便的仿真软件,绝大多数的图像处理可以用MATLAB完成。  有人问,处理图片,用PS岂不是更好。两者各有优点,如果需要将10000幅图片转换成灰度...
  • 建立循环函数,通过程序依此读取十幅原始图像,然后将原始图像转存为灰度图像 确定数码管所显示数字的四角坐标,然后将其依次输出 依据之前寻找到的四个坐标,将数字部分以外的图像设置为黑色; 在(3...
  • Matlab实现的灰度图像转换成RGB图像,效果不错
  • 用通过平均值法,加权平均法,最大值法三种方法,实现彩色图像灰度处理
  • 在许多图像处理系统中,对图像进行归一化都是必备的预处理过程。一般而言,对于灰度图像(或彩色通道的每个颜色分量)进行灰度归一化就是:使其像素的灰度值分布在0~255之间,避免图像对比度不足(图像像素亮度分布...
  • 数字图像处理——Matlab GUI与灰度变换函数简介Matlab具有强大的函数运算功能,利用这一点可以进行像素级的计算,也就是图像处理。这款软件基于Matlab平台,用户可以在软件界面中打开需要修改的图片,选择想要变换的...
1 2 3 4 5 ... 20
收藏数 12,494
精华内容 4,997
关键字:

matlab灰度图像处理