数字图像处理笔记——阈值(Thresholding)

数字图像处理笔记——阈值(Thresholding)阈值我们将图像分块最简单的方法就是设定一个阈值对图像进行二值化处理,那么这个阈值我们应该如何选择呢对于图像的直方图存在明显边界的图像,我们可以很容易找到这个阈值,但是如果图像直方图分界不明显,那么这个阈值的寻找将变得十分困难。因此我们存在全局阈值与局部阈值两种全局阈值全局阈值就是在整幅图像中我们只有一个阈值来对图像进行二值化,但是其存在其局限性,例如图像中存在高斯噪声的情况…

大家好,又见面了,我是你们的朋友全栈君。

阈值

我们将图像分块最简单的方法就是设定一个阈值对图像进行二值化处理,那么这个阈值我们应该如何选择呢

数字图像处理笔记——阈值(Thresholding)

对于图像的直方图存在明显边界的图像,我们可以很容易找到这个阈值,但是如果图像直方图分界不明显,那么这个阈值的寻找将变得十分困难。因此我们存在全局阈值与局部阈值两种

数字图像处理笔记——阈值(Thresholding)

全局阈值

全局阈值就是在整幅图像中我们只有一个阈值来对图像进行二值化,但是其存在其局限性,例如图像中存在高斯噪声的情况下,我们无法找到一个很好的阈值将图像的边界分开

数字图像处理笔记——阈值(Thresholding)数字图像处理笔记——阈值(Thresholding)

另外如果图像的边界是在局部对比下出现的,即不同位置阈值不同,那么全局阈值的效果也非常不好

数字图像处理笔记——阈值(Thresholding)

我们先不管全局阈值的缺点,我们来看看我们如何通过计算来获得这个全局阈值T呢?我们又OTSU’S算法

数字图像处理笔记——阈值(Thresholding)

下面是一些数学概念在图像上的体现

数字图像处理笔记——阈值(Thresholding)

OTSU算法就是想把图像分为两个块,然后使得这两个块之间的方差最大,也就是最大化两个块的均值与全局均值的差的平方

数字图像处理笔记——阈值(Thresholding)

数字图像处理笔记——阈值(Thresholding)

由于只存在这么一个阈值,那么我们在计算的时候可以简单地让这个值遍历0-255,然后找到σB最大的值,这个值就是我们要的阈值。我们可以理解为这个值把图像分为了相距最远的两块。我们在matlab中有graythresh这个函数来实现这个过程

数字图像处理笔记——阈值(Thresholding)

下图就显示了一个OTSU算法不是很理想的例子

数字图像处理笔记——阈值(Thresholding)

为了克服以上缺点我们有两点解决方法:1.先通过低通滤波器去噪再用OTSU 2.只在考虑边缘部分的像素来计算阈值,这样可以大大减少其他不重要部分对阈值计算过程的影响

数字图像处理笔记——阈值(Thresholding)

局部阈值

下面让我们来看看局部阈值/自适应阈值。它的原理就是将图像分块,对于不同的部分应用不同的阈值,在matlab中我们有blockproc这个函数来实现这个过程

数字图像处理笔记——阈值(Thresholding)

我们看到相比于之前,效果确实有很大的提升,但是缺点也特别明显,就是图像会出现分块化

数字图像处理笔记——阈值(Thresholding)

我们可以调小块的大小,但是这样的话会出现如果块内像素值变化不大的话,块内像素被全部分作黑或白而缺失了边界(例如右上角窗户的上方黑色的窗框内有白色的像素块)。因此块的选择是十分重要的

数字图像处理笔记——阈值(Thresholding)

更好的方式是我们在每个像素周围的一个区域内来计算阈值,根据这个块内的均值方差来计算这个像素的值是1还是0

数字图像处理笔记——阈值(Thresholding)

数字图像处理笔记——阈值(Thresholding)

RGB图阈值

除了将阈值在灰度图上应用,我们还可以将其应用在RGB图中,我们可以设定一种颜色,来得到与这种颜色相近颜色的物体

数字图像处理笔记——阈值(Thresholding)

例如我们取下图丝带的颜色可以得到如右图的结果

数字图像处理笔记——阈值(Thresholding)

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140854.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 视频录制软件哪个好,推荐几款简单实用的视频课件录制软件「建议收藏」

    视频录制软件哪个好,推荐几款简单实用的视频课件录制软件「建议收藏」  日常生活中,我们有时候会因为工作或学习的原因,会使用到一些视频录制软件,通过视频录制软件,我们可以记录一些错过的细节,提高学习或工作效率。当然,现在网上的视频录制软件那么多,到底视频录制软件哪个好用?下面,小编给大家几款视频录制软件,感兴趣的朋友就一起来看看吧。   一、微软录屏软件(MicrosoftSnip)  1、软件介绍:  MicrosoftSnip是微软最新…

  • ajax error parsererror,ajax jsonp parsererror原因及解决方法

    ajax error parsererror,ajax jsonp parsererror原因及解决方法在前端通过ajax请求后台之后返回的时候,出现了下面的异常:textStatus:”parsererror”;ajax请求代码如下:functiongenerate(url){$.ajax({type:”GET”,url:url,dataType:”jsonp”,timeout:5000,success:function(data){},error:function(XMLHtt…

  • PHP TCPDF导出支持中文的pdf

    PHP TCPDF导出支持中文的pdfPHP使用TCPDF导出支持中文的pdf一、下载https://github.com/tecnickcom/tcpdf下载TCPDF压缩包二、使用方法 require_once(‘./TCPDF/tcpdf.php’); $pdf=new\TCPDF(); $pdf->AddPage(); $html=”<p>helloworld你好世界</p>”; $pdf->WriteHtml(20,$html); //四种模式I输出

  • java InputStreamReader_InputStream

    java InputStreamReader_InputStream简介OutputStreamWriter和InputStreamReader是字节流和字符流转化之间桥梁,OutputStreamWriter继承自Writer接口,而InputStreamReader继承自接口Reader.需要了解的一点是字符流的写入和读取的方式.字符输出流:将字符通过指定编码方式转化成字节数据,然后存储到文件中. 字符输入流:读取文件的字节数据通过相同的编码方式转化…

  • 免费的java开发工具_Java那些最常用的免费开放工具,分享这15个!

    免费的java开发工具_Java那些最常用的免费开放工具,分享这15个!随着Java行业需求增加,Java工程师岗位薪资节节升高,很多小伙伴想要通过快速的方式掌握Java技能。对于初学Java的小伙伴来说了解一些免费的Java开发工具让我们工作、学习更顺畅,那么免费Java开发工具有哪些?针对这点我汇总了一些,可供参考。1、Java免费开发工具:JDK(Java开发工具包)如果你打算用Java开发一些小程序和应用程序,那么首先得给自己准备一个类似于JDK的工具,其中包…

  • SQL HAVING用法详解

    SQL HAVING用法详解

    HAVING子句对GROUPBY子句设置条件的方式与WHERE和SELECT的交互方式类似。WHERE搜索条件在进行分组操作之前应用;而HAVING搜索条件在进行分组操作之后应用。HAVING语法与WHERE语法类似,但HAVING可以包含聚合函数。HAVING子句可以引用选择列表中显示的任意项。
     
    下面的示例按产品ID对SalesOrderDetail进行了分组,并且只包含那些订单合计大于$1,000,000且其平

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号