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

news2025/1/18 10:07:06

目录:

机器视觉(一):概述

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

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

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

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

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

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

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

🌏🧐以下为正文🦄🪐

        图像分割(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 ~done
    r1 = 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.coloradmin.cn/o/144787.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

whistle的使用【前端抓包】

前言 抓包工具看起来只是测试要用的东西&#xff0c;其实对前端作用也很多&#xff0c;因为我们也要模拟请求、mock数据、调试。站在巨人肩膀上永远不亏! whistle能解决的痛点 一、看请求不方便 跳页、支付时候上一页的请求结果看不到&#xff0c;h5、小程序newWork不能在电…

Raki的读paper小记:Continual Learning of Natural Language Processing Tasks: A Survey

第一次写综述的小记&#xff0c;也将是我读完的第一篇综述&#xff08; 最开始因为可乐老师的原因&#xff0c;接触到了持续学习&#xff0c;然后从一开始的音频到自己读了一些ICLR的paper找idea做NLP的持续学习&#xff0c;然后做了自己第一个粗糙的工作&#xff0c;在杰哥的…

Hadoop高手之路9-Azkaban工作流管理器

文章目录Hadoop高手之路9-Azkaban工作流管理器一、工作流概述1. 工作流简介2. 常见的工作流调度工具1) Azkaban2) Oozie二、Azkaban简介1. Azkaban组成结构2. Azkaban的部署模式1) solo-server mode&#xff08;独立服务器模式&#xff09;2) two server mode&#xff08;双服务…

8Manage SRM:使用采购管理软件进入现代化模式

在企业运营发展中&#xff0c;采购组织一直是一个非常重要的部门&#xff0c;它会直接影响企业的采购成本效益。在采购活动中&#xff0c;如果采用传统线下的采购方式&#xff0c;容易导致采购信息不集中&#xff0c;效率低&#xff0c;出错率高&#xff0c;最终损害企业的利益…

社区发现系列02-算法介绍

hello, 大家好&#xff0c;欢迎来到阿君聊风控&#xff0c;我是阿君&#xff08;一名有7年互金和电商风控经验的算法工程师&#xff09;。在上篇文章https://blog.csdn.net/u010569893/article/details/128565829?spm1001.2014.3001.5502 中我们了解到可以用社区发现技术来对图…

全面兼容各端的动画库PAG,对标Lottie

感谢Tencent 开源了PAG库&#xff0c;终于有了国人自己的动画库了&#xff0c;该库兼容&#xff1a;移动端&#xff0c;桌面端&#xff0c;&#xff0c;WEB端&#xff0c;还有小程序端&#xff0c;真可谓用心了&#xff0c;而且PAG库相对其他库&#xff0c;使用的pag文件更小&a…

《UEFI内核导读》SecCore与PeiCore简介(I)

敬请关注&#xff1a;“固件C字营 SecCore也被称之为VTF&#xff0c;被映射到Boot Firmware Volume (BFV)&#xff0c;BFV的地址被放置在0xFFFFFFE0连续的4个字节&#xff08;小端模式&#xff09;。 SecCore 是一个FFS firmware file&#xff0c;其文件末端地址与于BFV的末端…

磨金石教育摄影技能干货分享|摄影拼贴技法的运用与效果

河南省-黄阳惠智-《那是山吗》画面中是一片群山景象。我们看上去感觉像是画出来的&#xff0c;又像是电脑做的图。其实这是摄影师用了中国山水画的特有表现手法&#xff0c;对桂林山水的景象&#xff0c;进行了拼贴在创造。作者用一些非山非水的现代物品&#xff0c;像织女一样…

【记录一】gis理论

gis地图相关一、gis 理论知识二、fianlshell连接服务器连接服务器命令行记录三、geoserver地图服务器初识geoserver添加新图层最近图层样式修改图层样式新增编辑图层的样式四、git上传代码查看远程地址上传代码时新建tag一、gis 理论知识 二、fianlshell连接服务器 连接服务器…

【小知识点】免费头像API,用 Python Flask 动态生成一个汉字头像

本案例是 爬虫训练场 项目的衍生案例&#xff0c;用于渲染用户头像&#xff0c;大家也可以将该接口用于其它目的。 本文会使用随机汉字生成技术&#xff0c;如未掌握&#xff0c;可以查看 Python 随机生成一个汉字 文章目录基础环境配置加载本地 txt 文件&#xff0c;用于随机生…

打包安卓apk后的V1和V2签名

前言&#xff1a;打包apk后上架之前需要进行加固&#xff0c;加固后生成的apk文件需要进行重新签名&#xff1b;单独的apk文件可以使用基于JDK&#xff08;需要安装java jdk&#xff09;和SDK&#xff08;需要下载android studio 开发工具&#xff09;的命令进行手动签名。安装…

【Maven】核心概念

Maven的核心概念一、Maven工程中约定的目录结构二、仓库管理&#x1f3b6;仓库的概述&#x1f3b6;仓库的分类本地仓库所在位置的设置重写更改本地仓库路径&#xff0c;不使用默认路径有什么好处呢&#xff1f;&#x1f3b6;Maven对仓库的使用三、POM工程的唯一标识依赖&#x…

数据结构与算法:泛型初学习

1.包装类 java中的数据类型int&#xff0c;double等不是对象&#xff0c;无法通过向上转型获取到Object提供的方法&#xff0c;而像String却可以&#xff0c;只因为String是一个对象而不是一个类型。基本数据类型由于这样的特性&#xff0c;导致无法参与转型&#xff0c;泛型&…

【服务器数据恢复】Raid5丢失一块盘被重建的数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器上5块硬盘组建raid5磁盘阵列&#xff0c;用于存储公司数据&#xff0c;无备份。 服务器故障&分析&#xff1a; 服务器上一块硬盘故障掉线&#xff0c;用户聘请一家运维公司对服务器进行维护&#xff0c;运维公司技术人员在没有了…

redis 基础

Redis学习笔记配置文件启动redis与redis进行交互redis命令Redis通用命令keys 查看所有符合模板的keytype 查看这个key的存储类型![在这里插入图片描述](https://img-blog.csdnimg.cn/175e3a5c1b064ce09b9b47cc1c7b34f9.png)del 删除一个keyexists 判断一个Key是否存在ttl 查看一…

HummerRisk V0.8.0:新增金山云、K8s基准检测、源IP审计分析等

HummerRisk V0.8.0发布&#xff1a;多云检测支持金山云、K8s检测新增CIS Benchmark 功能 、操作审计增加源 IP 分析功能、主机检测增加Linux 检测规则。同时优化 operator及Benchmark 的自动/手动安装&#xff0c;优化多个结果展示页面等。 感谢社区中小伙伴们的反馈&#xff…

整型常量不同进制间的相互转换

整型常量可以分别用二进制、八进制、十进制和十六进制表示&#xff0c;不同的进制并不影响数据本身的大小&#xff0c;同一个整型常量可以在不同进制之间转换&#xff0c;具体转换方式如下。 1.十进制和二进制之间的转换 (1)十进制转二进制 十进制转换成二进制就是一个除以2…

实验用试剂mPEG-PDLLA介绍;甲氧基聚乙二醇-聚DL-丙交酯 嵌段共聚物

PLA-MPEG、peg-pla、mPEG-PDLLA 甲氧基聚乙二醇-聚乳酸、甲氧基聚乙二醇-聚DL-丙交酯 结构式&#xff1a; 【详情】 化学式&#xff1a;CH3(C2H4O)m (C6H10O2)n 溶剂&#xff1a;氯仿、二氯甲烷、丙酮、DMF、DMSO等有机溶剂。 性状&#xff1a;半固体或固体&a…

【C++核心编程】C++全栈体系(八)

C核心编程 第四章 类和对象 C面向对象的三大特性为&#xff1a;封装、继承、多态 C认为万事万物都皆为对象&#xff0c;对象上有其属性和行为 例如&#xff1a; ​ 人可以作为对象&#xff0c;属性有姓名、年龄、身高、体重…&#xff0c;行为有走、跑、跳、吃饭、唱歌… …

数据采集网关对接MySQL数据库

数据采集网关嵌入式 ARM 控制器 BL301/BL302支持 MySQL、InfluDB、SQLite 等数据库。Mysql 支持 5.1.51~5.1.73 版本。 将编译好的文件拷贝到 BL302 的/usr/local/mysql 目录下&#xff0c;将里面的可执行文件复制 到/usr/sbin 目录下或者在设备上设置环境变量 export PATH&quo…