0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单图像处理:用用二值化吧!

新机器视觉 来源:ScutRobot 作者:ScutRobot 2021-06-01 14:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

引入

一张图像显示在显示屏上的时候,它斑斓多彩,轮廓分明(可你放的明明是张灰度图!),而当它被转化到数字设备当中的时候,我们看到的就将会是下面的情形:

61c7eb94-c22e-11eb-9e57-12bb97331649.png

是的,所有的色彩最后都会被变为一个个数字,在0到255之间来回徘徊,在一个个矩阵中被围困(突然诗意起来)。可以这样说,矩阵就是图像在数码设备中的表现形式。而正是因为他们由这些数字组成,才给了我们机会去用数字的方法来支配他们。

对于一张图片,我们往往不会对每一个地方都相同地感兴趣,总有一些特殊东西才是我们的目标。将目标区域和不想要的背景区域区分开我们就可以对这些数字下手。下面我们就说道说道二值化的那些事儿~

二值化

说起二值化,我们可以先来看看二值图像

二值图像(Binary Image)是指图像上的每一个像素只有两种可能的取值或灰度等级状态的图像。通常来讲就是我们常常看见的“非黑即白”的图像,也就是说,图像像素的灰度值无论在什么数据类型中都只有最大值和最小值两种取值。这种图像色彩类型少,可以进行高度的压缩,利于节省储存空间。

相应的,二值化就是把非二值图像经过计算变成二值图像。

在openCV4中有threshold()和adaptiveThreshold()可以来实现图像的二值化。

那么下面就先来介绍前一种啦

61f2b306-c22e-11eb-9e57-12bb97331649.png

输入输出的图像以及阈值和最大值大家都应该和好理解,那么什么是二值化方法的标志参数呢?

下面的表中大致就是可能会用的的一些标志参数和它们的含义:

61fff2fa-c22e-11eb-9e57-12bb97331649.png

下图是前五种方法做二值化之后的信号示意图:

620a8fda-c22e-11eb-9e57-12bb97331649.png

如同标志参数的作用介绍中说的,前五中标志参数都需要人为地设定一个阈值,之后才能进行二值化。人们进行二值化的目的往往是为了把目标物体和其他的东西分离开,形成图像的分割,但是有的时候为了分别这两者而设定的阈值往往不是那么简单就可以分得出来的,或者说,在对原始图像的灰度值分布不是那么了解的情况下是很难设定到自己想要的那种阈值的。

于是就有了下面的两个标志参数可以用来获取阈值:THRESH_OTSU(大津法)THRESH_TRIANGLE(三角形法)

那么什么是大津法呢

百度百科教我的:大津法也就是最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适合于双峰情况的自动求取阈值的方法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标两部分。背景和目标之间的类间方差越大,说明构成图像的两部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。

6214b528-c22e-11eb-9e57-12bb97331649.png

这是某一张图像的灰度直方图,我们可以看到它其实很明显地呈现出了适合利用大津法求阈值的双峰情况(灰度大都集中在某两个分离的区域之间),对某一假设的灰度值阈值将图像的灰度值分成背景和目标两部分,计算两组灰度值之间的类间方差,得到的方差值大致如图中的红色点所示。于是理所当然的,方差最高点所对应的灰度值正是我们能够合理分开目标和背景的阈值。

但是由于这两种方法往往是基于全局阈值,当图像中有一部分过度曝光或者说有阴影遮挡时,用这样的阈值选取方法就会显得有点不太好。

比如说,当你晚上写下一篇英语作文,想要拍照上传给老师批改,而在上传到某扫描王软件时,往往就会发生这样的事情:

62285c72-c22e-11eb-9e57-12bb97331649.png

6239df60-c22e-11eb-9e57-12bb97331649.png

于是我们就理所当然地想:有没有可以让这整张图中的字母大多数都能看清的方法呢?

很高兴,有的!

我们就要用到adaptiveThreshold(),它可以帮助我们得到局部自适应的阈值。(当然,先把图像分割,再用全局函数也不失为一种方法,不过相对比来说还是直接用adaptiveThreshold()来得更加方便快捷。

adaptive_mean是均值法自适应计算blockSize×blockSize邻域内的阈值,在这之后就可以进行二值化了。

6280c5ec-c22e-11eb-9e57-12bb97331649.png

因为是局部的阈值,所以就可以更加明确地在每一个地方都有比较好的区分,可以把大部分范围内的内容都更好地分割开来。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 显示屏
    +关注

    关注

    30

    文章

    4709

    浏览量

    79809
  • 二值图像
    +关注

    关注

    0

    文章

    14

    浏览量

    8924
  • OpenCV
    +关注

    关注

    33

    文章

    652

    浏览量

    45074

原文标题:科普 | 简单图像处理:用用二值化吧!

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    进来选!数字信号转网络输出的AI图像处理

    接口。这些优点使得数字输出接口在图像处理板领域应用广泛。作为一家能够提供深度定制的AI图像处理板服务商,慧视光电定制过多样的数字接口转网络
    的头像 发表于 04-21 17:50 212次阅读
    进来选!数字信号转网络输出的AI<b class='flag-5'>图像</b><b class='flag-5'>处理</b>板

    探索LM9704实时数字图像处理器:功能、特性与应用

    探索LM9704实时数字图像处理器:功能、特性与应用 在当今数字的时代,数字图像处理器在各类成像设备中扮演着至关重要的角色。今天,我们就来
    的头像 发表于 04-21 12:40 144次阅读

    多通道兼容图像采集卡:一机搞定多路图像信号处理

    在工业自动、安防监控、智能检测、医疗影像等领域,随着应用场景的不断升级,单路图像采集已无法满足多路信号同步接入、实时处理的重要需求。多通道兼容图像采集卡应运而生,以“一机集成、多路协
    的头像 发表于 03-19 14:17 207次阅读
    多通道兼容<b class='flag-5'>图像</b>采集卡:一机搞定多路<b class='flag-5'>图像</b>信号<b class='flag-5'>处理</b>

    ICU-X0201 Hello Chirp示例应用用户指南

    ICU-X0201 Hello Chirp示例应用用户指南 在嵌入式产品中集成超声传感器时,开发合适的应用程序是关键的一环。InvenSense的ICU-X0201 Hello Chirp示例应用为
    的头像 发表于 12-26 10:25 581次阅读

    EspeedGrab图像采集软件介绍(Cameralink转USB采集)

    支持Cameralink采集YUV411、YUV422等特殊格式 4 图像直方图 黑白、彩色、实时直方图可选择查看; 5 精准像素 逐个灰度可查看,位置可查看 6 彩色白平衡 可划定区域,手动或者
    发表于 12-23 17:26

    使用Otsu阈值算法将灰度图像

    Otsu 算法是由日本学者OTSU于1979年提出的一种对图像进行的高效算法,又称“最大类间方差法”。当我们对一个图象进行
    发表于 10-28 06:49

    慧视光电——全栈图像处理板供应商

    随着AI日益渗透到各行各业,作为支撑平台的图像处理板日益成为人们关注的焦点,由于原来的系统集成商或一级配套单位不具备或者不完全具备图像处理案板的整体研发整理,因此全栈
    的头像 发表于 10-23 18:02 704次阅读
    慧视光电——全栈<b class='flag-5'>图像</b><b class='flag-5'>处理</b>板供应商

    机语音控制方案设计2025新版

    一套高效、稳定且易用的茶机语音控制体系。通过集成先进的语音识别与处理技术,旨在实现用户对茶机各项功能的语音操控,全面提升用户的使用体验,充分满足家庭和办公等不同场景下的多样需求。
    的头像 发表于 07-22 17:02 1337次阅读
    茶<b class='flag-5'>吧</b>机语音控制方案设计2025新版

    谐波怎么处理简单的方法

    ,如变频器、UPS电源、LED照明、计算机等电子设备。这些设备在工作时会产生非正弦波电流,从而在电网中形成谐波。常见的谐波次数为3次、5次、7次等奇次谐波。 、最简单的谐波处理方法 1. 增加系统短路容量    提高系统的短路
    的头像 发表于 07-13 16:35 4209次阅读
    谐波怎么<b class='flag-5'>处理</b>最<b class='flag-5'>简单</b>的方法

    使用k230,可以使用pipeline库,将输入的视频流进行处理吗?

    关于使用k230,可以使用pipeline库,将输入的视频流进行处理
    发表于 06-16 06:46

    HarmonyOS应用图像stride处理方案

    图像存储在内存中时,内存缓冲区可能在每行像素之后包含额外的填充字节。填充字节会影响图像在内存中的存储方式,但不会影响图像的显示方式。stride是内存中一行像素到内存中下一行像素的字节数;如果存在填充字节,则步幅比
    的头像 发表于 06-10 14:17 1351次阅读
    HarmonyOS应用<b class='flag-5'>图像</b>stride<b class='flag-5'>处理</b>方案

    使用ALINX VD100开发板实现图像处理

    这是一块基于 AMD Versal Edge AI 平台的开发板,功能特别强大,可以用来做图像处理、人工智能等各种高阶应用。
    的头像 发表于 05-12 09:23 1326次阅读
    使用ALINX VD100开发板实现<b class='flag-5'>图像</b><b class='flag-5'>处理</b>

    基于LockAI视觉识别模块:C++使用图像的统计信息

    图像处理中,统计信息可以帮助我们了解图像的特性,例如区域内的像素分布、颜色转换以及特定区域的分析。本文将介绍基于LockAI视觉识别模块如何提取兴趣区域(ROI)、转换颜色通道、计算均值和标准差,以及查找最小
    的头像 发表于 05-08 10:09 893次阅读
    基于LockAI视觉识别模块:C++使用<b class='flag-5'>图像</b>的统计信息

    K230 yolo识别例程中,怎么修改摄像头参数及AI推理输入图片参数,使其采集图像并将图像推给AI进行推理呢

    我尝试修改pipeline中的初始函数和getframe函数均没有办法在ide上显示图像,有没有办法修改呢? 设置为Sens
    发表于 04-25 07:51