精华内容
下载资源
问答
  • 最近使用MATLAB对JPEG格式的灰度图像进行二值化二值化后的图像非0即1(1代表的是白色,0代表的是黑色),我按照图像原本的名字保存,所以格式也没变,但是再次打开图像时还是存在非01的灰度值。 ...

            最近使用MATLAB对JPEG格式的灰度图像进行二值化,二值化后的图像非0即1(1代表的是白色,0代表的是黑色),我按照图像原本的名字保存,所以格式也没变,但是再次打开图像时还是存在非01的灰度值。
            最初的时候我有bug的代码如下:

    % writen by liuhuan 
    imgPath = 'F:\cutImage\123\';        % 图像库路径
    imgDir  = dir([imgPath '*.jpg']); % 遍历所有jpg格式文件
    for i = 1:length(imgDir)          % 遍历结构体就可以一一处理图片了
        img = imread([imgPath imgDir(i).name]); %读取每张图片
        thresh = graythresh(img);     %自动确定二值化阈值
        imgBW = im2bw(img,thresh);  %对图像二值化
        imwrite(imgBW,[imgPath imgDir(i).name]);
    end;
    

            下面这是处理之前灰度图的部分像素值:
    这里写图片描述
            下面是二值化之后的图像的部分像素值:
    这里写图片描述
            当我打开二值化之后的图像时,出现了以下状况:
    这里写图片描述
            按照逻辑来说,上图像素应该是非0即255的,但是为什么出现了166,85等值呢?原因是我在保存图片的时候使用的是jpg格式,但是jpg格式的图片是有损耗的,bmp格式是没有损耗的,所以我们要选择保存为bmp格式。修改的代码如下:

    % writen by liuhuan 
    imgPath = 'F:\cutImage\123\';        % 图像库路径
    imgDir  = dir([imgPath '*.jpg']); % 遍历所有jpg格式文件
    for i = 1:length(imgDir)          % 遍历结构体就可以一一处理图片了
        img = imread([imgPath imgDir(i).name]); %读取每张图片
        filename = imgDir(i).name;  %获取图片的名字
        thresh = graythresh(img);     %自动确定二值化阈值
        imgBW = im2bw(img,thresh);  %对图像二值化
        i = find('.'==filename);
        imname = filename(1:i-1);
        imwrite(imgBW,[imgPath strcat(imname,'.bmp')]);
    end;

            下面我们讲讲怎样修改图片名。

    • filename = imgDir(i).name; 是获取文件夹下图片的名字,例如cat.jpg,下面我们以此为例。
    • i = find(‘.’==filename);是计算图片名称中. 的索引,如在cat.jpg中,. 的索引是4。
    • imname = filename(1:i-1);是取索引为从1到4-1的字符串为名字,即cat。
    • imwrite(imgBW,[imgPath strcat(imname,’.bmp’)]);是将二值化的图片保持到后面的地址中。

            这样保存的图就不存在灰度值了~

    展开全文
  • matlab灰度化、二值化处理图像

    万次阅读 多人点赞 2018-12-04 20:59:36
    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);

     

    结果:

    展开全文
  • 灰度图像二值化方法的研究,基于MATLAB图像的处理
  • 灰度图像经典二值化Matlab代码

    热门讨论 2009-07-23 13:56:48
    我自己实现的经典的灰度图像二值化Matlab代码:包括Otsu二值化方法,Niblack二值化,Kittler最小分类错误二值化。内有使用说明和示例图片。
  • 描述了图像灰度MATLAB程序,还有二值化的程序
  • 灰度图像二值化阈值otsuthreshold(C语言)相当于matlab中threshold函数
  • Matlab实现图像灰度化和二值化

    千次阅读 2019-01-15 23:50:25
    %导入本地的图像(注意路径) InitPicture=imread(‘C:\Users\ASUS\Desktop\car_1.jpg’); %显示原始图像 imshow(InitPicture); ...%使用最大类间方差法找到二值化的阈值 ThresholdValue= g...

    文章目录

    1. 代码

    %导入本地的图像(注意改成自己所选图片的路径)
    InitPicture=imread('C:\Users\ASUS\Desktop\car_1.jpg');
    
    %显示原始图像
    imshow(InitPicture);                               
    
    %显示灰度化图像
    GrayPicture=rgb2gray(InitPicture);
    imshow(GrayPicture);                              
    
    %使用最大类间方差法找到阈值,显示二值化图像
     ThresholdValue= graythresh(InitPicture);
     im2bw(InitPicture,ThresholdValue);
    

    2. 效果

    在这里插入图片描述

    灰度化图像

    在这里插入图片描述

    展开全文
  • 此函数对灰度图像进行二值化。 阈值引入的误差会扩散到具有不同权重的相邻像素,遵循两个扩散矩阵之一(Floyd & Steinberg 或 Stucky)。
  • 输入img:彩色或灰度图像se_background:结构元素,例如 strel('disk',50) 取决于图像分辨率、脚本等输出估计前景的倒置二值图像(脚本)
  • matlab图像灰度化转为二值化

    千次阅读 2019-07-23 16:35:44
    %先读取照片 I = imread(‘rice.png’); imshow(I); %把开元素的构造元素(Structuring element)指定形状圆盘,...%将灰度图片“减去”原背景图片,得到背景均匀的图片 I2 = imsubtract(I,BG); imshow(I2); %对...

    %先读取照片
    I = imread(‘rice.png’);
    imshow(I);
    在这里插入图片描述
    %把开元素的构造元素(Structuring element)指定形状圆盘,大小15,即获取
    BG = imopen(I,strel(‘disk’,15));
    imshow(BG);
    在这里插入图片描述
    %将灰度图片“减去”原背景图片,得到背景均匀的图片
    I2 = imsubtract(I,BG);
    imshow(I2);

    在这里插入图片描述
    %对上述图片进行处理
    %求出阈值
    level = graythresh(I2);
    %与阈值进行比较,即进行黑白化
    bw = im2bw(I2,level);
    imshow(bw);
    在这里插入图片描述

    展开全文
  • 将彩色图像转化为灰度图像的过程称为图像灰度。彩色图像中的像素由RGB三个分量决定,每个分量都有0-255(256种)选择,这样一个像素点的像素可以有1600万种可能(256256256),而灰度图的像素点的像素是RGB...
  • matlab图像进行二值化处理 >>m = imread('d:\image\logo.jpg'); >> imshow(n); >> n = graythresh(data); >> im2bw(m,n); 用matlab图像灰度化处理 data = imread('d:\image\photo....
  • 参考博客... ... function z = r2gb( data ) %函数的功能为将一个rgb图像数据转化为灰度数据、二值数据 gray_data = rgb2gray(data); %把RGB图像(三维矩阵)转化成灰度图像,得到的gray_dat...
  • matlab灰度图转化及二值化 matlab提供图像处理功能,我们可将彩色图像灰度化,并对其进行二值化处理,其简要代码如下: ...//灰度图像二值化 j=double(i_1); [m,n]=size(j); lk=j; for p=1:m; for q=1:n; if j(p,
  • 将彩色图像转化为灰度图像的过程称为图像灰度。彩色图像中的像素由RGB三个分量决定,每个分量都有0-255(256种)选择,这样一个像素点的像素可以有1600万种可能(256256256),而灰度图的像素点的像素是RGB...
  • 可以有效对bmp.jpeg等图像进行灰度二值化图像进行处理的必备算法。
  • Matlab图像二值化

    万次阅读 多人点赞 2017-03-23 21:02:41
    图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。 将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理...
  • subplot(2,2,1),imshow(f),title('原图像') se=strel('square',20);%结构元素 fo=imopen(f,se);%开运算 subplot(2,2,2),imshow(fo),title('开运算后的图像') fc=imclose(f,se);%闭运算 subplot(2,2,3),imshow(fc),...
  • 灰度图像二值化

    2011-10-14 16:42:14
    介绍了图像及数字图像处理技术的一些概念和相关知识;对Matlab7.0 软 件的发展和软件在图像处理中的应用做了简要介绍;还介绍了灰度图像二值化方法以及利用Matlab7.0 软件工具进行算法的实现
  • matlab来实现图像灰度化和二值化两个基本功能
  • 图像处理篇-利用matlab 图像二值化

    千次阅读 2019-04-21 17:05:38
    二值化阀值 将256个亮度等级的灰度图像通过适当的阀值选取,所有的灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否则这些 像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体...
  • 将彩色图像转化为灰度图像的过程称为图像灰度。彩色图像中的像素由RGB三个分量决定,每个分量都有0-255(256种)选择,这样一个像素点的像素可以有1600万种可能(256256256),而灰度图的像素点的像素是RGB...
  • MATLAB图像处理之二值化以及灰度处理

    万次阅读 多人点赞 2018-10-02 17:01:07
    首先先来明白几个概念: 1、彩色图像(RGB):图像的每个像素点都是由红(R)、绿(G)、蓝(B)三个分量来表示的,每一个分量一般分别介于0-255之间,当然如果每一个颜色分量用更多的位数去...2、灰度图像(gra...
  • MATLAB图像二值化,工具:Image Processing Toolbox
  • 将彩色图像转化为灰度图像的过程称为图像灰度。彩色图像中的像素由RGB三个分量决定,每个分量都有0-255(256种)选择,这样一个像素点的像素可以有1600万种可能(256256256),而灰度图的像素点的像素是RGB...

空空如也

空空如也

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

matlab灰度图像二值化

matlab 订阅