图像分割I

为什么要图像分割?

目标

  1. 掌握图像分割的基本概念
  2. 了解图像分割方法分类
    目标:将图像划分为不同区域
  3. 定义:令集合R代表整个图像区域,对R的图像分割可以看作是将R分成N个满足以下条件的非空子集R1,R2,...,RNR_1,R_2,...,R_NR1,R2,...,RN:
    ⋃i=1NRi=R,Ri∩Rj=∅\bigcup_{i=1}^NR_i = R,R_i\cap R_j = \varnothing i=1NRi=RRiRj=
    应用:医学图像分割、工件表面缺陷检测、实例分割、字符识别

图像分割方法:

  1. 基于图像灰度阈值
  2. 基于边界的方法
  3. 基于区域的方法
  4. 基于聚类的方法
  5. 基于图论及概率模型的方法
  6. 深度学习方法

图像标记:为像素f(x,y)f(x,y)f(x,y)打上准确的离散化标签g(x,y)g(x,y)g(x,y)。4-连通域和8-连通域对打标签的判断标准不一样。

总结:

  1. 图像分割是中层视觉的重要内容,具有广泛应用
  2. 图像分割的主要方法包括阈值法、区域法等
  3. 图像标记为分割后的结果打上不同标签,便于后续处理

基于灰度直方图的阈值分割

目标:

  1. 掌握灰度阈值分割的基本概念
  2. 掌握大津算法的基本思想及实现

灰度阈值分割

  • 假设:图像中的目标区和背景区之间或不同目标区之间,灰度存在明显差异
  • 凡是灰度值包含于z的像素都变成某一灰度值,其他变成另一个灰度值,则该图像就以z为界被分成两个区域
  • 如果=1和=0,分割后的图像为二值图像

自动阈值分割

  • 自动确定最佳阈值,使背景和目标之间的差异最大

大津(Otsu)算法原理I:

  • 根据统计分析理论,最佳阈值确定的最佳二分类应使类内方差最小,等同于类间方差最大
  • 大津算法基本思想:确定使灰度直方图类间方差最大的最佳阈值
  • 假设灰度直方图已经归一化,即
    pi=niN,∑pi=1p_i = \frac{n_i}{N}, \sum p_i = 1 pi=Nni,pi=1

大津(Otsu)算法原理II:

  • 假设阈值T将像素灰度划分为两类:C0C_0C0C1C_1C1,则每一类出现的概率:
    ω0=∑i=1Tpi,ω1=∑i=T+1Npi=1−ω0\omega_0 = \sum_{i=1}^{T}p_i,\omega_1 = \sum_{i = T+1}^Np_i = 1-\omega_0 ω0=i=1Tpi,ω1=i=T+1Npi=1ω0
  • 每类的平均灰度级:
    μ0=∑i=1Tipi/ω0=μ0ˊω0,μ1=∑i=T+1Nipi/ω1=μ1ˊω1=μ−μ0ˊ1−ω0\mu_0 = \sum_{i=1}^Tip_i/\omega_0= \frac{\acute{\mu_0}}{\omega_0},\mu_1 = \sum_{i=T+1}^Nip_i/\omega_1= \frac{\acute{\mu_1}}{\omega_1} = \frac{\mu-\acute{\mu_0}}{1-\omega_0} μ0=i=1Tipi/ω0=ω0μ0ˊ,μ1=i=T+1Nipi/ω1=ω1μ1ˊ=1ω0μμ0ˊ
    其中μ=∑i=1Nipi\mu = \sum_{i=1}^Nip_iμ=i=1Nipi。显然有ω0μ0+ω1μ1=μ\omega_0\mu_0+\omega_1\mu_1=\muω0μ0+ω1μ1=μ

大津算法原理III:

  • 两类类内方差:
    σ02=∑i=1T(i−μ0)2pi/ω0,σ12=∑i=T+1N(i−μ1)2pi/ω1\sigma_0^2 = \sum_{i=1}^T(i-\mu_0)^2p_i/\omega_0,\sigma_1^2 = \sum_{i=T+1}^N(i-\mu_1)^2p_i/\omega_1 σ02=i=1T(iμ0)2pi/ω0σ12=i=T+1N(iμ1)2pi/ω1
  • 对应的类间方差:
    σB2=ω0(μ0−μ)2+ω1(μ1−μ)2=ω0ω1(μ1−μ0)2\sigma_B^2 = \omega_0(\mu_0-\mu)^2 + \omega_1(\mu_1-\mu)^2=\omega_0\omega_1(\mu_1-\mu_0)^2 σB2=ω0(μ0μ)2+ω1(μ1μ)2=ω0ω1(μ1μ0)2

大津算法原理IV:

  • 显然,ωB\omega_BωB是关于最佳阈值T的隐函数,应选取T:
    T=argmaxσB2,1<=T<LT = ar gmax\sigma_B^2,1<=T<L T=argmaxσB2,1<=T<L
  • 算法实现:遍历灰度取值,使σB2\sigma_B^2σB2最大

总结

  1. 大津算法是常用的一类灰度阈值自动选取方式,目标是令类间方差最大
  2. 大津算法求解采用遍历方式,思想直接,实现速度快。

灰度阈值分割实战演练

目标:

  1. 掌握如何使用OpenCV实现基于边缘的分割
  2. 掌握大津算法的OpenCV实现

基于边缘轮廓的分割

  • 可以在边缘检测的基础上,基于闭合边缘构建分割后的结果
  • 该算法基于Suzuki,S.“Topological structural analysis of digitized binary images by border following.”

相关函数

  • 找到目标轮廓
image, contours, hierarchy = cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]])
#image:单通道图像矩阵,可以是灰度图,但更常用的是经过边缘检测算子处理后的二值图像;
#contours:定义为"vector<vector<Point>>contours",是一个轮廓列表;
#hierachy:存在嵌套轮廓时,分别为第i个轮廓的后一个轮廓、前一个轮廓、父轮廓、内嵌轮廓的索引编号;
#mode:包括CV_CHAIN_APPROX_SIMPLE仅保存轮廓的拐点信息,把所有轮廓拐点处的点保存入contours等;
#offset:所有的轮廓信息相对于原始图像对应的偏移量,缺省不设置。

实例:

要求:检测图中的米粒
算法步骤:

  1. 图像采集(取得图像)
  2. 图像预处理或后处理
  3. 基于灰度的阈值分割
  4. 得到最终结果
import cv2
import matplotlib.pyplot as plt
import copy
#打开图像
filename = r'C:/python/img/rice.png'
image = cv2.imread(filename)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
#大津算法灰度阈值化
thr, bw = cv2.threshold(gray, 0, 0xff, cv2.THRESH_OTSU)
print('Threshold is:', thr)#画出灰度直方图
plt.hist(gray.ravel(), 256, [0, 256])
plt.show()element = cv2.getStructuringElement(cv2.MORPH_CROSS, (3, 3))
bw = cv2.morphologyEx(bw, cv2.MORPH_OPEN, element)seg = copy.deepcopy(bw)
#计算轮廓
cnts, hier = cv2.findContours(seg, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
#cnts:分割后的所有轮廓
#hier:分割后的结果count = 0
#遍历所有区域,并去除面积过小的
for i in range(len(cnts), 0, -1):c = cnts[i-1]area = cv2.contourArea(c)if area < 10:continuecount = count + 1print("blob", i, " : ", area)#区域画框并标记x, y, w, h = cv2.boundingRect(c)cv2.rectangle(image, (x, y), (x+w, y+h), (0, 0, 0xff), 1)cv2.putText(image, str(count), (x,y), cv2.FONT_HERSHEY_PLAIN, 0.5, (0, 0xff, 0))print("米粒数量:", count)
cv2.imshow("源图", image)
cv2.imshow("阈值化图", bw)cv2.waitKey()
cv2.destroyAllWindows()

由于没有进行前处理,右下角出现漏点。

局部阈值分割实战演练

目标:

  1. 了解局部阈值法分割基本原理
  2. 了解多阈值分割的基本原理

全局阈值法的问题:背景存在光照不均时,分割效果变差

局部阈值法

在这里插入图片描述
将原图片划分区域,分别看但各区域内灰度值极值的差值,对大于一定值的区域单独进行大津算法分割。

多阈值分割原理

对比:类间方差(二类):
σB2=ω0(μ0−μ)2+ω1(μ1−μ)2=ω0ω1(μ1−μ0)2\sigma_B^2 = \omega_0(\mu_0 - \mu)^2 + \omega_1(\mu_1 - \mu)^2 = \omega_0\omega_1(\mu_1 - \mu_0)^2 σB2=ω0(μ0μ)2+ω1(μ1μ)2=ω0ω1(μ1μ0)2
类间方差(多类):
σB2=∑k=1Kωk(μk−μ)2\sigma_B^2 = \sum_{k=1}^K\omega_k(\mu_k-\mu)^2 σB2=k=1Kωk(μkμ)2
其中∑k=1Kωk=1\sum_{k=1}^K\omega_k = 1k=1Kωk=1
选择最优阈值T1,......,TkT_1,......,T_kT1,......,Tk:
(T1,......,Tk)=argmaxσB2(T1,......,Tk),1<=T1<...<Tk<L(T_1,......,T_k) = argmax \sigma_B^2(T_1,......,T_k),1<=T_1<...<T_k<L (T1,......,Tk)=argmaxσB2(T1,......,Tk),1<=T1<...<Tk<L
图像差别可通过峰值信噪比(PSNR)评价:
定义均方误差:
MSE=1mn∑x=0m−1∑y=0n−1∥f(x,y)−g(x,y)∥2MSE = \frac{1}{mn}\sum_{x=0}^{m-1}\sum_{y=0}^{n-1}\|f(x,y)-g(x,y)\|^2 MSE=mn1x=0m1y=0n1f(x,y)g(x,y)2
原图像和处理后图像逐像素作差的平方和除以图像像素数
定义PSNR:
PSNR=10⋅log10(fMAX2MSE)=20⋅log10(fMAX2MSE),fMAX对应最大灰度值PSNR = 10\cdot log_{10}(\frac{f_{MAX}^2}{MSE}) = 20\cdot log_{10}(\frac{f_{MAX}^2}{\sqrt{MSE}}),f_{MAX}对应最大灰度值 PSNR=10log10(MSEfMAX2)=20log10(MSEfMAX2)fMAX

总结:

  1. 局部阈值法可有效解决照明不均的问题
  2. 多阈值法是二值化分割方法的扩展,可解决多指目标的分割问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492507.shtml

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

相关文章

图像分割II

区域增长算法 目标 掌握区域生长法的基本思想掌握图像分裂合并分割的基本思想及步骤 区域生长法分割 大津算法的局限性&#xff1a;噪声比较严重的图片、分割目标颜色渐变的情况&#xff0c;分割效果差。 区域生长&#xff1a;从种子点开始&#xff0c;按照一定准则&#x…

205页PPT,看5G+AI引领的下一个时代!

来源&#xff1a;国泰君安证券、暴点摘要&#xff1a;为大家分享一份国泰君安证券关于“电子行业2019年春季投资策略&#xff0c;5GAI系列研究”报告&#xff0c;详看哪些产业将迎来黄金期。预计5G换机高峰期将出现在2020~2023年&#xff0c;届时手机出货量将恢复增长。同时&am…

图像表示与描述

图像表示与描述 目标 掌握常见的基于轮廓特征的描述掌握常见的图像区域特征描述 对目标特征的测量是要利用分割结果进一步从图像中获取有用信息&#xff0c;为达到这个目的需要解决两个关键问题&#xff1a; 选用什么特征来描述目标(定性)如何精确测量这些特征(定量) 常见…

RISV-V未来将面临怎样的挑战?

来源&#xff1a;MoneyDJ、半导体行业观察继大陆的RISC-V联盟成立之后&#xff0c;台湾RISC-V联盟也在今年正式成立&#xff0c;这也让RISC-V的议题热度逐渐加温&#xff0c;事实上这也是许多人看好能够足以与ARM竞争的架构&#xff0c;加上目前许多国际大厂陆续采用RISC-V架构…

使用matlab程序,基于标准卡标定感压纸的压力分布

任务说明 使用富士感压纸(压力测试纸)测量压力&#xff0c;感压纸受压时会显现颜色&#xff0c;根据峰值应力呈现不同的颜色深度。感压制提供了标准比色卡&#xff0c;给出不同颜色深度对应的压力值。 要求使用matlab&#xff0c;对照标准比色卡&#xff0c;对实验中使用的比…

斯坦福大学陈丹琦等人解读机器阅读最新进展:超越局部模式匹配

来源&#xff1a;AI 科技评论不久前&#xff0c;斯坦福大学的计算机科学博士陈丹琦的一篇长达 156 页的毕业论文《Neural Reading Comprehension and Beyond》成为「爆款文章」&#xff0c;一时引起了不小轰动。而本文是她与同样师从 Christopher Manning 的同学 Peng Qi 一起发…

智能网联产业链深度报告

来源&#xff1a;智车科技未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#…

史上最全的物理学科普(值得收藏)

来源&#xff1a;中科院物理所&#xff08;ID&#xff1a;cas-iop&#xff09;本文素材主要摘录自加来道雄的《Hypersapce》和丘成桐的《The Shape of Inner Space》。作者希望凭籍本文&#xff0c;回顾一下两百年来的科学史&#xff0c;看看那些代表着人类最高心智的数学家、物…

量子通信是不是伪科学?潘建伟这样回应

来源&#xff1a;科技日报“墨子号”发射快三年了&#xff0c;到底有什么新发现&#xff1f;量子通信和公众有什么关联&#xff0c;到底是不是伪科学&#xff1f;10日&#xff0c;在全国政协十三届二次会议举行的记者会上&#xff0c;全国政协委员、中国科学技术大学常务副校长…

AI如何设计,才能人类利益最大化?

来源&#xff1a;国机智能机器人曾为现代互联网早期协议和架构设计做出贡献的Vint Cerf&#xff0c;用一个寓言来解释为什么在人工智能等新兴技术出现后&#xff0c;勇敢的领导力至关重要。想象一下&#xff0c;你住在一个被群山环绕的山谷底部的小社区里。在远处的山顶上有一块…

编译 | 5G时代的游戏世界:一年后的AR与VR将会发生的几个变化

来源&#xff1a;spectrum5G已不再是研发中的技术&#xff0c;它已经离我们非常的近&#xff0c;全球许多运营商都在都在部署这一新技术。那么我们可以从这个新一代无线系统中得到什么&#xff1f;不只是更好的智能手机服务。许多公司&#xff0c;比如德国电信&#xff0c;诺基…

《麻省理工科技评论》发布“21世纪迄今十大最糟科技”

来源&#xff1a;网络大数据必须承认&#xff0c;人类总会犯错&#xff0c;在科技的发展上也是一样。所以&#xff0c;当最新一期的《麻省理工科技评论》评出今天这份“ 2000-2019 年糟糕科技清单”时&#xff0c;你千万不要以为这是一件容易的事情。如果某项科技没有达到让人欣…

javascript Array对象

一&#xff0c;创建数组对象 JavaScript的数组支持了对任何数据类型的支持&#xff0c;并不会像java&#xff0c;C#那样指定了数组类型只能存储这种类型。 我们可以使用以下三种方法来创建JavaScript数组对象&#xff0c; 1&#xff0c;var arrnew Array(); 2 , var arrnew Arr…

67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?

来源&#xff1a;算法与数学之美摘要&#xff1a;我们知道强大的深度模型需要很多计算力&#xff0c;那你知道创建一个知识图谱的成本到底是多少吗&#xff1f;德国 Mannheim 大学的研究者最近仔细估算了各种知识图谱每创建一条记录所需要的成本&#xff0c;他们表示对于大型知…

怎样修改MFC中应用程序标题的图标?

一、单文档中修改程序标题的图标 1. 切换到ResourceView视图&#xff0c;右键点击Icon&#xff0c;选择“import” ,导入图标(.ico)文件 2. 在CMainFrame中的OnCreate()函数中添加如下代码&#xff1a; //设置标题栏的图标 HICON m_hIcon AfxGetApp()->LoadIcon(IDI_ICON…

黄仁勋的“数据梦” 英伟达豪掷69亿美金虎口夺食

来源 &#xff1a; Bloomberg 编译&#xff1a;网易智能 晗冰3月12日消息&#xff0c;据国外媒体报道&#xff0c; 图形图像芯片制造商英伟达同意斥资69亿美元收购芯片制造商Mellanox&#xff0c;其欲通过此举大举进军不断增长的数据中心芯片市场。据悉&#xff0c;英伟达对Mel…

即使达到5级自动驾驶阶段,自动驾驶“卡车”也不可能完全“无人”

来源&#xff1a;IEEE编译&#xff1a;大数据文摘 李雷、周素云感谢Waymo和Uber等创业公司&#xff0c;让我们知道了无人驾驶汽车是怎么回事。这些汽车或卡车上配备了大量的传感器&#xff0c;并且依靠强大的计算能力使人们可以放心乘坐。愿景是美好的&#xff0c;但是却忽视了…

MFC中如何给对话框添加背景图片

定位到 void CXXXDlg::OnPaint()&#xff0c;在if()...else()中的else()下添加如下代码&#xff1a; else { //CDialog::OnPaint();//要禁止这个调用 CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&am…

孙正义万字访谈:AI是我现在唯一关注的事情,我是科技的绝对信徒

来源&#xff1a;腾讯科技科技变革丝毫没有减速&#xff0c;自动化就是科技的终极使命&#xff01;这是孙正义在最新采访中再次强调的理念。在接受CNBC超长采访中&#xff0c;软银创始人、千亿美元愿景基金掌舵者一再表示&#xff0c;AI能解决人类无法解决的问题&#xff0c;未…

Oracle 直方图理论

一.何为直方图 直方图是一种几何形图表&#xff0c;它是根据从生产过程中收集来的质量数据分布情况&#xff0c;画成以组距为底边、以频数为高度的一系列连接起来的直方型矩形图&#xff0c;如图所示 二.ORACLE 直方图 在Oracle中直方图是一种对数据分布情况进行描述的工具。它…