形态学图像处理和图像分割MATLAB实验

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

一、实验目的

  1. 理解腐蚀和膨胀的原理,掌握开运算、闭运算及形态学的边界提取。
  2. 掌握孤立点检测、线检测和边缘检测的方法。
  3. 掌握全局阈值处理的方法。

二、实验内容

1. 开运算和闭运算实验。

图1(a)显示了一幅被噪声图像污染的指纹图像,图1(b)给出了结构元,请自编程序,实现以下运算:

形态学图像处理和图像分割MATLAB实验

(1) 用图1(b)所示的结构元对图1(a)进行腐蚀。
(2) 对图1(a)进行开运算。
(3) 对开运算的结果进行膨胀处理。
(4) 对开运算的结果进行闭运算处理。
(5) 分析实验结果。

答:

%%
%对污染的指纹图像进行腐蚀运算
clear all;close all;clc

f=imread('1.tif');%f 240x317
[M, N]=size(f);
f1=zeros(M,N);
figure;imshow(f)
se=ones(3); %结构元素为 3×3 时
[m, n]=size(se);
sx=floor(m/2); %取整
sy=floor(n/2);
f = padarray(f,[sx sy]); %对 f 进行零填充
[M, N]=size(f); %获取填充后 f 的大小

for i=sx+1:M-sx
    for j=sy+1:N-sy
        fblock=f(i-sx:i+sx,j-sy:j+sy);
        andresult=se&fblock; %与运算
        if (andresult==se)
            f1(i-sx,j-sy)=1;
        else
            f1(i-sx,j-sy)=0;
        end
    end
end
subplot(1,4,1); imshow(f1);title('腐蚀运算结果');


%%
%%对污染的指纹图像进行开运算,即腐蚀之后进行膨胀运算

f1 = padarray(f1,[sx sy]);
f2=zeros(238,315); %开运算的结果
for i=sx+1:M-sx
    for j=sy+1:N-sy
        fblock=f1(i-sx:i+sx,j-sy:j+sy);
        andresult=se&fblock;
        As=sum(sum(andresult));
        if As>0
            f2(i-sx,j-sy)=1;
        else
            f2(i-sx,j-sy)=0;
        end
    end
end

subplot(1,4,2);imshow(f2);title('开运算结果');
%%
%对开运算的结果进行膨胀处理。
f2 = padarray(f2,[sx sy]);
f3=zeros(238,315); %开运算的结果继续膨胀
for i=sx+1:M-sx
    for j=sy+1:N-sy
        fblock=f2(i-sx:i+sx,j-sy:j+sy);
        andresult=se&fblock;
        As=sum(sum(andresult));
        if As>0
            f3(i-sx,j-sy)=1;
        else
            f3(i-sx,j-sy)=0;
        end
    end
end

subplot(1,4,3); imshow(f3);title('开运算后膨胀结果');
%%
%对开运算的结果进行闭运算

f3 = padarray(f3,[sx sy]);
f4=zeros(238,315); %存储开运算后闭运算结果
for i=sx+1:M-sx
    for j=sy+1:N-sy
        fblock=f3(i-sx:i+sx,j-sy:j+sy);
        andresult=se&fblock; %与运算
        if (andresult==se)
            f4(i-sx,j-sy)=1;
        else
            f4(i-sx,j-sy)=0;
        end
    end
end

subplot(1,4,4); imshow(f4);title('开运算后闭运算结果');

形态学图像处理和图像分割MATLAB实验

2. 用形态学处理提取边界。

图2(a)给出了一幅简单的二值图像,图2(b)给出了结构元,请按照式(1),对图2(a)进行处理。

β ( A ) = A − ( A ⊖ B ) \beta (A)=A-(A\ominus B) β(A)=A(AB)

其中, B B B 是结构元。先通过 B B B A A A 腐蚀,再执行 A A A 和腐蚀结果之间的差,即可得到集合 A A A 的边界。

形态学图像处理和图像分割MATLAB实验
答:

close all; clear all; clc;
f=imread('2.tif');
%先腐蚀
se=ones(3);%结构元
[m, n]=size(se);
sx=floor(m/2); %取整
sy=floor(n/2);
f_padded = padarray(f,[sx sy]); %对 f 进行零填充
[M, N]=size(f_padded); %获取填充后 fp 的大小
for i=sx+1:M-sx
    for j=sy+1:N-sy
        fblock=f_padded(i-sx:i+sx,j-sy:j+sy);
        andresult=se&fblock; %与运算
        if (andresult==se)
            f1(i-sx,j-sy)=1;
        else
            f1(i-sx,j-sy)=0;
        end
    end
end
%后做差
fe=f-f1;
figure,imshow(fe)

形态学图像处理和图像分割MATLAB实验

4. 全局阈值处理。

图6给出了一幅带噪声的指纹图像,请进行以下运算:
(1) 求图6的直方图。
(2) 用 T = m T=m T=m (平均图像灰度)开始,并令 Δ T = 0.01 \Delta T=0.01 ΔT=0.01,应用“实验讲义”中给出的迭代算法得到全局阈值。
(3) 用(2)中得到的全局阈值对图像进行分割。

答:

clear all;close all;clc
f=imread('4.tif');
imhist(f);

f=im2double(f);
T=mean(f(:));%当前阈值
t=0;%下一次阈值

while abs(T-t)>0.01%当T与t相差过大
    G1=f>T;%逻辑判断,f>T的部分为1,反之为0,注意G1会是logical类型的变量
    t=0.5*mean(f(G1))+0.5*mean(f(~G1));
    T=t;
end

%显式的使用find

% index=find(f>T);
% f(index)=1;
% index=find(f<T);
% f(index)=0;
% imshow(f);

%使用逻辑索引来改善速度,不需要显式的使用find
f(f>T)=1;
f(f<=T)=0;
imshow(f);

形态学图像处理和图像分割MATLAB实验文章来源地址https://www.toymoban.com/news/detail-457815.html

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

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

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

相关文章

  • 使用opencv c++完成图像中水果分割(分水岭、形态学操作、通道处理)单独标记每个水果

    2023.4.16日更新 1. 利用一阶矩增加了草莓等水果的质心绘制。 2. 绘制出了生长方向。 原为本人机器人视觉作业。参考文章http://t.csdn.cn/eQ0qp(目测是上一届的学长) 要求:在网络上寻找水果重叠在一起的图片、经过一系列图像处理,完成每个水果的分割,并单独标记出来。 导

    2024年02月04日
    浏览(58)
  • 形态学运算与仿真:图像处理中形态学操作的简单解释

    形态学是图像处理领域的一个分支,主要用于描述和处理图像中的形状和结构。形态学可以用于提取图像中的特征、消除噪声、改变图像的形状等。其中形态学的核心操作是形态学运算。 形态学运算是一种基于形状的图像处理技术,它是通过结构元素与图像进行特定运算的方

    2024年02月04日
    浏览(47)
  • 第九章 形态学图像处理

    图像形态学也叫数学形态学,是指一系列处理图像 形状特征 的图像处理技术,是一门建立在格伦和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论。其基本思想是利用一种特殊的 结构元 来测量或提取输入图像中相应的形状或特征,以便进一步进行图像分析

    2024年02月09日
    浏览(25)
  • 《数字图像处理-OpenCV/Python》连载:形态学图像处理

    本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 形态学图像处理是基于形状的图像处理,基本思想是利用各种形状的结构元进行形态学运算,从图像中提取表达和描绘区域形状的结构信息。形态学运算的数学原

    2024年02月19日
    浏览(48)
  • python数字图像处理基础(四)——图像平滑处理、形态学操作、图像梯度

    让有噪音点(图像上显得突兀的像素点)的图像变得更加自然顺眼 1.均值滤波 blur() 根据核的大小(rowcol),每个像素值就等于以此像素为中心的周围rowcol个像素的平均值。 核大一点,显然越平滑、模糊。 result = cv2.blur(img, (15, 15)) 2.方框滤波 boxFilter() normalize=true的时候,效果同

    2024年01月18日
    浏览(42)
  • 图像处理技巧形态学滤波之腐蚀操作

    欢迎回来,我的图像处理爱好者们!今天,让我们深入研究图像处理领域中的形态学计算。这些非线性的图像处理技术允许我们操纵图像中对象的形状和结构。在本系列中,我们将依次介绍四种基本的形态学操作:腐蚀、膨胀、开操作和闭操作。 闲话少说,我们直接开始吧!

    2024年02月13日
    浏览(31)
  • OpenCV图像处理学习十,图像的形态学操作——膨胀腐蚀

    一.形态学操作概念 图像形态学操作是指基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学对图像进行处理。 形态学有四个基本操作:腐蚀、膨胀、开操作、闭操作,膨胀与腐蚀是图像处理中最常用的形态学操作手段。 二.形态学操作-膨胀 跟卷积

    2024年02月05日
    浏览(36)
  • 简要介绍 | 基于Python的图像形态学处理概述

    注1:本文系“简要介绍”系列之一,仅从概念上对基于Python的图像形态学处理进行非常简要的介绍,不适合用于深入和详细的了解。 Digital terrain models from airborne laser scanning for the automatic extraction of natural and anthropogenic linear structures In: Geomorphological Mapping: a professional handbook of

    2024年02月10日
    浏览(31)
  • 【计算机视觉】图像处理算法(形态学滤波篇)

    来源:《OpenCV3编程入门》,怀念毛星云大佬🕯️ 说明: 本系列重点关注各种图像处理算法的原理、作用和对比 数学形态学的概念: 数学形态学(Mathematical morphology)是立在格论和拓扑学基础之上的图像分析学科,足数学形态学阁像处现的基本理论。其基本的运算包括:二值腐

    2024年03月10日
    浏览(35)
  • OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

    图像显示 转hsv图像 颜色表示为三个组成部分:色调(Hue)、饱和度(Saturation)和亮度(Value)。常用于图像处理中,因为它允许调整颜色的感知特性,如色彩和亮度,这些在RGB颜色模型中不那么直观。 HSV模型特别适用于任务如图像分割和对象追踪,因为它可以更好地处理光

    2024年04月22日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包