MATLAB-图像分割

这篇具有很好参考价值的文章主要介绍了MATLAB-图像分割。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 实验目的

–掌握图像分割的原理

–掌握基于阈值的分割方法

–掌握区域生长算法

  • 实验原理

1.图像的二值化的基本原理

图像的二值化处理就是讲图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。

2.迭代阈值法

(1)选择一个初始阈值T1

(2)根据初始阈值T1将图像 分割为G1和G2两个部分,分别求出G1和G2的平均灰度值m1和m2;

(3)计算新的阈值T2= (m1+m2)/2;

(4)如果| T1 – T2 |≤ T0,终止迭代。否则令T1= T2,重复步骤(2)和(3),最后的T2就是所求的最优阈值。

初始阈值T1的选取:

当目标与背景面积相当时,将T1设为整幅图像的平均灰度

当目标与背景面积相差较远时,将T1设为最大灰度与最小灰度的中间值。

3.质心型区域生长算法:

(1)确定初始种子点,阈值;

(2)对图像进行逐行扫描,找出尚没有归属的像素;

(3)比较已存在区域的像素灰度平均值与该区域邻接的像素灰度值,若差值小于阈值,则合并;

(4)以新合并的像素为中心,重复步骤(3),检查新像素的邻域,直到区域不能进一步扩张;

(5)返回到步骤(2),继续扫描直到不能发现没有归属的像素,则结束整个生长过程。

三、实验环境

– Windows XP/ Windows 7

– Matlab 7.0.1/ Matlab R2008

四、实验内容与步骤

1.实现固定阈值分割,完成对一幅灰度图像的二值分割,调整阈值,记录并分析实验结果;

A=rgb2gray(imread('pepper.png'));   %读取到一张图片  

thresh = graythresh(I);     %自动确定二值化阈值

I2 = im2bw(I,thresh);       %对图像二值化

figure(1)

imshow(I)     %显示二值化之前的图片

figure(2)

imshow(I2)    %显示二值化之后的图片

MATLAB-图像分割

2.编写迭代阈值法程序,记录迭代得出的最优阈值,利用该阈值实现图像的分割;

I=imread('rice.png');

%设置初始阈值   去最大值和最小值的中间值

zmax=max(max(I));

zmin=min(min(I));

T1=(zmax+zmin)/2;

%根据阈值将图像进行分割为前景和背景,分别求出两者的平均灰度  z1和z2

b=1;

[m n]=size(I);

while (b)

        ifg=0;

        ibg=0;

        fnum=0;

        bnum=0;

        for i=1:m

            for j=1:n

                tmp=I(i,j);

                if(tmp>=T1)

                    ifg=ifg+1;

                    fnum=fnum+double(tmp);  %前景像素的个数以及像素值的总和

                else

                    ibg=ibg+1;

                    bnum=bnum+double(tmp);%背景像素的个数以及像素值的总和

                end

            end

        end

        %计算前景和背景的平均值

        z1=fnum/ifg;

        z2=bnum/ibg;

        if(T1==(uint8((z1+z2)/2)))

            b=0;

        else

            T1=uint8((z1+z2)/2);

        end

        %当阈值不变换时,退出迭代

end

disp(strcat('迭代的阈值T2:',num2str(T1)));

I1=im2bw(I,double(T1)/255);

imshow(I1)

MATLAB-图像分割

3.编写基于质心型区域生长算法的图像分割程序,调节生长阈值和种子点坐标,观察实验结果。

I=imread('tire.tif');

figure

imshow(I)

[M,N]=size(I);

[y,x]=getpts; %单击取点后,按enter结束

x1=round(x);

y1=round(y);

seed=I(x1,y1); %获取中心像素灰度值

J=zeros(M,N);

J(x1,y1)=1;

count=1; %待处理点个数

threshold=0.15;

while count>0

    count=0;

    for i=1:M %遍历整幅图像

    for j=1:N

        if J(i,j)==1 %点在“栈”内

        if (i-1)>1&(i+1)<M&(j-1)>1&(j+1)<N %3*3邻域在图像范围内

            for u=-1:1 %8-邻域生长

            for v=-1:1

                if J(i+u,j+v)==0&abs(I(i+u,j+v)-seed)<=threshold

                    J(i+u,j+v)=1;

                    count=count+1;  %记录此次新生长的点个数

                end

            end

            end

        end

        end

    end

    end

end

subplot(1,2,1),imshow(I);

title("原图像")

subplot(1,2,2),imshow(J);

title("分割后的图像")

1.鼠标选取轮胎轴中心点得到的图像:

MATLAB-图像分割

2.鼠标选取轮胎任意一点得到的图像:

MATLAB-图像分割

3.鼠标选取轮胎外一点得到的图像:

MATLAB-图像分割

六、实验心得与体会

本次实验学习了图像分割,学习了用固定阈值分割、迭代法以及区域生长法几种不同的方法实现。同时体会到不同的分割方法出来的效果不同应用领域也不同。

迭代法:对于初始阈值T的选择要稍微注意些。当目标与背景的面积相当时,可以将初始阈值T设置为整个图像的平均灰度值;当目标与背景的面积相差较大时,更好地选择是将初始阈值T设置为最大灰度值和最小灰度值的中间值。

区域生长法:1.对CT图像、MR图像以及所有的具有边界效应,或者是该区域与外界区域有明显差距的图像,分割效果很好。

2.对感兴趣区域与外接区域存在边缘连通现象的图像,分割效果很差。如超声图像,肝脏对超声的反应就是“均匀性”散点回声。这造成“基于邻域像素相似性”分割很难应用。阈值设置的小,造成分割不完整;阈值设置得太大,造成过分割现象。文章来源地址https://www.toymoban.com/news/detail-444199.html

到了这里,关于MATLAB-图像分割的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数字图像处理:实验六 图像分割

    数据分割是由图像处理到图像分析的关键步骤,是图像识别和计算机视觉至关重要的预处理,图像分割后提取的目标可用于图像识别、特征提取,图像搜索等领域。图像分割的基本策略主要是基于图像灰度值的两个特性,即灰度的不连续性和灰度的相似性,因此图像分割方法

    2024年02月06日
    浏览(48)
  • Matlab|图像处理04|图像分割-阈值分割方法

    一、人工阈值分割方法threshold_test1.m 1、分析修改阈值对分割结果的影响 分析:取直方图中第一个谷底的灰度值作为阈值,图像分割效果较好。当阈值改变时,分割后的图像有部分信息丢失,本图中当阈值减小时分割后的图像黑色部分较多,当阈值增大时分割后的图像白色部

    2024年02月11日
    浏览(49)
  • MATLAB图像分割之阈值分割

            可以通过图像全局的信息,例如整个图像的灰度直方图。如果在整个图像中只使用一个阈值,则这种方法叫做全局阈值法,整个图象分成两个区域,即目标对象(黑色)和背景对象(白色)。全局阈值将整个图像的灰度阈值设置为常数。 I=imread(\\\'veg.png\\\'); figure,imshow(I); I2=r

    2024年02月07日
    浏览(44)
  • 实验三 图像分割与描述

    一、实验目的: (1)进一步掌握图像处理工具Matlab,熟悉基于Matlab的图像处理函数。 (2)掌握图像分割方法,熟悉常用图像描述方法。 二、实验原理 1.肤色检测 肤色是人类皮肤重要特征之一,在检测人脸或手等目标时常采用肤色检测的方法,将相关区域从图像中分割出来

    2024年02月12日
    浏览(35)
  • 深度学习实验-3d医学图像分割

    实验四 基于nnU-Net模型的3D医学图像分割实验 腹部多器官分割一直是医学图像分析领域最活跃的研究领域之一,其作为一项基础技术,在支持疾病诊断,治疗规划等计算机辅助技术发挥着重要作用。近年来,基于深度学习的方法在该领域中获得了巨大成功。本实验数据集为多

    2024年02月07日
    浏览(55)
  • (数字图像处理MATLAB+Python)第十章图像分割-第一、二节:阈值分割和边界分割

    图像分割 :在对图像的研究和应用中,人们往往仅对图像中的某些目标感兴趣,这些目标通常对应图像中具有特定性质的区域。图像分割是指把一幅图像分成不同的具有特定性质区域的图像处理技术,将这些区域分离提取出来,以便进一步提取特征和理解 图像分割方法多种

    2024年02月16日
    浏览(59)
  • 计算机视觉实验五——图像分割

    了解图割操作,实现用户交互式分割,通过在一幅图像上为前景和背景提供一些标记或利用边界框选择一个包含前景的区域,实现分割。 采用聚类法实现图像的分割(K-means方法)。 ①图片准备 博主选择了一张 前景与背景区分明显 的图片,和一张 前景与背景区分不明显 的

    2024年04月15日
    浏览(45)
  • Matlab分割彩色图像

    彩色图像 彩色图像除有亮度信息外,还包含有颜色信息。以最常见的RGB(红绿蓝)彩色空间为例来简要说明彩色图像: 彩色图像可按照颜色的数目来划分。例如,256色图像和真彩色图像(2的16次方=216777216种颜色)等,通常RGB图像中每个像素都是用24位二进制数表示的,故也

    2024年02月11日
    浏览(29)
  • 图像分割(MATLAB实现)

    图像分割 就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。 现有的图像分割方法主要分以下几类: 基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法 等

    2024年02月08日
    浏览(28)
  • MATLAB-图像分割

    实验目的 –掌握图像分割的原理 –掌握基于阈值的分割方法 –掌握区域生长算法 实验原理 1.图像的二值化的基本原理 图像的二值化处理就是讲图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得

    2024年02月04日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包