机器视觉(七):图像分割

news/2024/11/23 0:46:20/

目录:

机器视觉(一):概述

机器视觉(二):机器视觉硬件技术

机器视觉(三):摄像机标定技术

机器视觉(四):空域图像增强

机器视觉(五):机器视觉与世界杯

机器视觉(六):频域图像增强

机器视觉(七):图像分割

机器视觉(八):图像特征提取

🌏🧐以下为正文🦄🪐

        图像分割(image segmentation)是指把图像分割成各个具有特性的区域并提取出感兴趣目标的技术和过程。

        现有的图像分割方法主要分以下几类:基于阈值(threshold)的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。

        基于阈值的分割方法是一种应用十分广泛的图像分割技术,其实质是利用图像的灰度直方图信息获取用于分割的阈值,一个或几个阈值将图像的灰度级分为几个部分,认为属于同一部分的像素是同一个物体。

一、灰度阈值法介绍

1.原理

        图像阈值化处理的变换函数表达式为:

2.阈值的选取

  • 双峰法
  • 迭代法
  • 大津法
  • 判别分析法
  • 最佳熵自动阈值法

二、最大类间方差确定阈值(大津法)

        大津法又叫最大类间方差法、最大类间阈值法(OTSU)。它的基本思想是,用一个阈值将图像中的数据分为两类,一类中图像的像素点的灰度均小于这个阈值,另一类中的图像的像素点的灰度均大于或者等于该阈值。如果这两个类中像素点的灰度的方差越大,说明获取到的阈值就是最佳的阈值(方差是灰度分布均匀性的一种度量,背景和前景之间的类间方差越大,说明构成图像的两部分的差别越大,当部分前景错分为背景或部分背景错分为前景都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。)。则利用该阈值可以将图像分为前景和背景两个部分。而我们所感兴趣的部分一般为前景。

        具体的分析可以参考我的另一篇博文:大津法(最大类间方差法OTSU)

 三、双峰法阈值分割

双峰法阈值分割
I=imread('test2.jpg'); I=rgb2gray(I); subplot(1,2,1);
imhist(I);title('直方图');
thread=130/255;
subplot(1,2,2); I3=im2bw(I,thread);
imshow(I3);title('双峰法分割图');

四、迭代法阈值分割

1.步骤

  1. 选取初始分割阈值,通常可选图像灰度平均值 T。
  2. 根据阈值 TT 将图像像素分割为背景和前景,分别求出两者的平均灰度 T_0 和 T_1。
  3. 计算新的阈值 T′=(T0+T1)/2。
  4. 若 T==T′,则迭代结束,T 即为最终阈值。否则令 T=T′,转第 (2) 步。

2.实现

A = imread('text.png');
figure;
subplot(121);imshow(A);title('原始图像')
T = mean2(A);   %取均值作为初始阈值
done = false;   %定义跳出循环的量
i = 0;
% while循环进行迭代
while ~doner1 = find(A<=T);  %小于阈值的部分r2 = find(A>T);   %大于阈值的部分Tnew = (mean(A(r1)) + mean(A(r2))) / 2;  %计算分割后两部分的阈值均值的均值done = abs(Tnew - T) < 1;     %判断迭代是否收敛T = Tnew;      %若不收敛,则将分割后的均值的均值作为新的阈值进行循环计算i = i+1;
end
A(r1) = 0;   %将小于阈值的部分赋值为0
A(r2) = 1;   %将大于阈值的部分赋值为1   这两步是将图像转换成二值图像subplot(122);imshow(A,[]);title('迭代处理后')

http://www.ppmy.cn/news/9869.html

相关文章

C进阶:数据在内存中的存储

深度剖析数据在内存中的存储C进阶:数据在内存中的存储深度剖析数据在内存中的存储数据类型介绍类型的基本归类整型家族浮点数家族&#xff1a;构造类型&#xff1a;指针类型&#xff1a;空类型&#xff1a;整型在内存中的存储原码、反码、补码原码反码补码的相互转换整型数据的…

【MySQL进阶教程】 索引使用与设计原则

前言 本文为 【MySQL进阶教程】 索引使用与设计原则 相关知识&#xff0c;下边将对索引的使用&#xff08;包括&#xff1a;验证索引效率&#xff0c;最左前缀法则&#xff0c;范围查询&#xff0c;索引失效情况&#xff0c;SQL提示&#xff0c;覆盖索引&#xff0c;前缀索引&a…

VTK-路径规划

前言&#xff1a;本博文主要研究VTK中路径规划相关的内容&#xff0c;后期会持续更新路径规划相关的拓展应用&#xff0c;希望能给各位小伙伴一些帮助&#xff0c;也希望小伙伴们多多关注支持。 vtkGraphGeodesicPath 位置&#xff1a;..\Filter\Modeling 描述&#xff1a;路…

多镜像 mirror , 实现自动切换仓库下载包

试了两项目发现可以&#xff0c;还有一个在看&#xff0c;也不知道是不是重复依赖太多导致编译不成功。。。 问题场景: 1.公司有内部搭建的nexus(私有maven库), 添加了 mirror 配置 1 2 3 4 5 <mirror> <id>yougou</id> <mirrorOf>*</mir…

Python基础(二十二):文件操作

文章目录 文件操作 一、文件操作的作用 二、文件的基本操作 1、文件操作步骤

(1分钟速览)SLAM问题中一般方程和超定方程的求解

今天在学习的过程中偶然看到了一个博客&#xff0c;总结Axb的&#xff0c;那么我也写一篇。首先就是判断A的秩和(A|b)的秩之间的关系&#xff0c;然后通过这个关系来进行进一步地判断。编辑切换为居中添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;求解方…

优秀的 Verilog/FPGA开源项目介绍(三十六)-RISC-V(新增一)

关于RISC-V的二三事risc-v官网❝https://riscv.org/RISC-V&#xff08;跟我读&#xff1a;“risk----------------five”&#xff09;是一个基于精简指令集&#xff08;RISC&#xff09;原则的开源指令集架构&#xff08;ISA&#xff09;。这里要明确两个概念&#xff1a;指令集…

链表常见OJ题汇总(持续更新)

目录前言一、移除链表中的元素&#xff08;多指针法&#xff09;二、反转链表&#xff08;多指针法&头插法&#xff09;三、链表的中间结点&#xff08;算数法和双指针法&#xff09;四、链表中的第K个结点&#xff08;算数法&双指针法&#xff09;五、合并两个有序链表…