ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

图像处理之二值化

2020-11-22 15:01:15  阅读:324  来源: 互联网

标签:值化 BINARY 阈值 cv2 之二 图像处理 THRESH 像素 二值化


图像处理之二值化

二值化方式

二值化方式分为五种:
THRESH_BINARY:将大于某一个阈值的变成最大值,其他为0
THRESH_BINARY_INV:和THRESH_BINARY恰好相反
THRESH_TRUNC: trunc就是截断的意思, 将大于某一阈值的像素直接设置为阈值大小,其他不变
THRESH_TOZERO:和trunc相反,在暗色部分截断,小于某一阈值就设置为0,其他不变
THRESH_TOZERO_INV:和tozero相反,大于阈值设置为0,其他不变

方式公式处理后原始图
THRESH_BINARY$1600在这里插入图片描述dgsa
THRESH_BINARY_INV在这里插入图片描述在这里插入图片描述在这里插入图片描述
THRESH_TRUNC在这里插入图片描述在这里插入图片描述在这里插入图片描述
THRESH_TOZERO在这里插入图片描述在这里插入图片描述在这里插入图片描述
THRESH_TOZERO_INV在这里插入图片描述在这里插入图片描述在这里插入图片描述

二值化算法

二值化算法分为普通二值化,自适应二值化,OTSU二值化(注意:二值化输入只能是灰度图

普通二值化

#low: 阈值
#high: 最大值
ret, binay = cv2.threshold(img,  low, higher, cv2.THRESH_BINARY)

自适应二值化
自适应二值化的阈值不是自己设定的而是算出来的,算的方法有平均值法,和高斯平均法
平均值法:取一个窗口的平均值作为阈值
高斯平均法:按高斯分布对窗口内的像素取加权和

#ADAPTIVE_MEAN_C: 自适应方法
#255 : 最大值
#11: 窗口大小
#2 :常数
th2 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_MEAN_C, cv2.THRESHOLD_BINARY, 11, 2)

OTSU二值化
OTSU又称最大类间方差法,顾名思义就是找到一个阈值使得大于该阈值和小于该阈值的两部分像素的方差和最大,目的是为了去掉尽可能多的信息,只保留最基本的信息。
在这里插入图片描述
对于图像I(x,y),前景(即目标)和背景的分割阈值记作T,属于前景的像素点数占整幅图像的比例记为ω0,其平均灰度μ0;背景像素点数占整幅图像的比例为ω1,其平均灰度为μ1。图像的总平均灰度记为μ,类间方差记为g。 假设图像的背景较暗,并且图像的大小为M×N, 图像中像素的灰度值小于阈值T的像素个数记作N0,像素灰度大于阈值T的像素个数记作N1,则有:
      ω0=N0/ M×N (1)
      ω1=N1/ M×N (2)
      N0+N1=M×N (3)
      ω0+ω1=1 (4)
      μ=ω0μ0+ω1μ1 (5)
      g=ω0(μ0-μ)2+ω1(μ1-μ)2 (6)
将式(5)代入式(6),得到等价公式: g=ω0ω1(μ0-μ1)^2 (7)
采用遍历的方法得到使类间方差最大的阈值T,即为所求。

ret, binay = cv2.threshold(img,  low, higher, cv2.THRESH_BINARY|cv2.THRESH_OTSU)

标签:值化,BINARY,阈值,cv2,之二,图像处理,THRESH,像素,二值化
来源: https://blog.csdn.net/qq_33499229/article/details/109848482

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有