美文网首页
阈值处理

阈值处理

作者: Tsukinousag | 来源:发表于2021-10-12 16:49 被阅读0次

阈值处理是指剔除图像内像素高于一定值或者低于一定值的像素点

返回阈值,dst=cv2.threshold(src,thresh,maxvel,type)

二值化阈值处理(cv2.THRESH_BINARY)

会将原始图像处理为仅有两个值的二值图像

  • 对于灰度值>thresh的像素点,灰度值设置为maxvel
  • 对于灰度值<=thresh的像素点,灰度值设置为0
import cv2

img=cv2.imread("D:/renlian.jpg")

t,rst=cv2.threshold(img,127,255,cv2.THRESH_BINARY)

cv2.imshow("img",img)
cv2.imshow("rst",rst)

cv2.waitKey(0)
cv2.destroyWindow()

反二值化阈值处理(cv2.THRESH_BINARY_INV)

  • 对于灰度值>thresh的像素点,灰度值设置为0
  • 对于灰度值<=thresh的像素点,灰度值设置为maxvel
import cv2

img=cv2.imread("D:/renlian.jpg")

t,rst=cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)

cv2.imshow("img",img)
cv2.imshow("rst",rst)

cv2.waitKey(0)
cv2.destroyWindow()

截断阈值处理(CV2.THRESH_TRUNC)

  • 大于thresh的像素点的值设定为阈值
  • 小于等于thresh的像素点的值保持不变
import cv2

img=cv2.imread("D:/renlian.jpg")

t,rst=cv2.threshold(img,127,255,cv2.THRESH_TRUNC)

cv2.imshow("img",img)
cv2.imshow("rst",rst)

cv2.waitKey(0)
cv2.destroyWindow()

超阈值零处理(cv2.THRESH_TOZERO_INV)

  • 大于阈值的像素点的值处理为0
  • 小于等于该阈值的像素点的值保持不变
import cv2

img=cv2.imread("D:/renlian.jpg")

t,rst=cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)

cv2.imshow("img",img)
cv2.imshow("rst",rst)

cv2.waitKey(0)
cv2.destroyWindow()

低阈值0处理(cv2.THRESH_TOZERO)

  • 大于阈值的像素点的值保持不限
  • 小于等于该阈值的像素点处理为0
import cv2

img=cv2.imread("D:/renlian.jpg")

t,rst=cv2.threshold(img,127,255,cv2.THRESH_TOZERO)

cv2.imshow("img",img)
cv2.imshow("rst",rst)

cv2.waitKey(0)
cv2.destroyWindow()

自适应阈值处理

使用自动变换的阈值完成对图像的阈值处理

dst=cv2.adaptiveThreshold(src,maxValue,adaptiveMethod,thresholdType,blockSize,C)
  • 8位单通道图像
  • 最大值
  • 自适应方法

cv2.ADAPTIVE_THRESH_MEAN_C

邻域所有像素点的权重值是一致的

cv2.ADAPTIVE_THRESH_GAUSSIAN_C

与邻域各个像素点到中心点的距离有关,通过高斯方程得到各个点的权重值

  • cv2.THRESH_BINARY / cv2.THRESH_BINARY_INV
  • 3,5,7
  • 常量
import cv2

img=cv2.imread("D:/hjb.jpg",0)

#二值化阈值处理
t1,thd=cv2.threshold(img,127,255,cv2.THRESH_BINARY)

#两个自适应阈值处理的效果
thdMEAN=cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,5,3)

thdGAUS=cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,5,3)

cv2.imshow("img",img)
cv2.imshow("thd",thd)
cv2.imshow("thdMEAN",thdMEAN)
cv2.imshow("thdGAUS",thdGAUS)

cv2.waitKey(0)
cv2.destroyWindow()

可以看出,普通的阈值处理会丢失大量的信息,而自适应阈值处理可以得到效果更好的二值图像


Otsu处理

遍历所有可能的阈值,从而找到最佳的阈值

cv2.threshold()中对参数type+cv2.THRESH_OTSU

在使用Otsu方法时,要把阈值设为0

import cv2
import numpy as np

img=np.zeros((5,5),dtype=np.uint8)

img[0:5,0:5]=123
img[2:5,2:5]=126

print(img)

t1,thd=cv2.threshold(img,127,255,cv2.THRESH_BINARY)

print(thd)

t2,otsu=cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)

print(t2,otsu)
[[123 123 123 123 123]
 [123 123 123 123 123]
 [123 123 126 126 126]
 [123 123 126 126 126]
 [123 123 126 126 126]]

[[0 0 0 0 0]
 [0 0 0 0 0]
 [0 0 0 0 0]
 [0 0 0 0 0]
 [0 0 0 0 0]]

123.0 

[[  0   0   0   0   0]
 [  0   0   0   0   0]
 [  0   0 255 255 255]
 [  0   0 255 255 255]
 [  0   0 255 255 255]]
import cv2

img=cv2.imread("D:/hjb.jpg",0)

t1,thd=cv2.threshold(img,127,255,cv2.THRESH_BINARY)

t2,otsu=cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)

cv2.imshow("img",img)
cv2.imshow("thd",thd)
cv2.imshow("otsu",otsu)

cv2.waitKey(0)
cv2.destroyAllWindows()

相关文章

  • 阈值处理

    阈值处理 阈值处理即图像二值化。是图像分割的一种最简单的方法。二值化可以把灰度图像转换成二值图像。把大于某个临界灰...

  • 阈值处理

    OpenCV提供了两个函数cv2.threshold() 和 cv2.adaptiveThreshold(),用于...

  • 阈值处理

    《OpenCV轻松入门:面向Python》读书笔记作者:李立宗出版社:电子工业出版社出版时间:2019-05 第6...

  • 阈值处理

    阈值处理是指剔除图像内像素高于一定值或者低于一定值的像素点 二值化阈值处理(cv2.THRESH_BINARY) ...

  • OpenCV--图像处理 图像阈值

    3、图像处理 图像阈值 thresh 通过对像素点与阈值的比较,当大于阈值或小于阈值时分别进行取值 ret, ds...

  • 自适应阈值处理与Otsu处理---OpenCV-Python开发

    为什么需要自适应阈值处理 对于色彩均衡的图像来说,直接使用一个阈值就能完成对图像的阈值化处理。但是,有时候图像的色...

  • OpenCV-Python系列三:图像分割(1)--阈值

    阈值分割是图像处理中非常实用的操作,对我们提取目标区域,使图像信息更加简单(0和1)来加速后续的处理速度。图像阈值...

  • 自适应阈值处理

    《OpenCV轻松入门:面向Python》读书笔记作者:李立宗出版社:电子工业出版社出版时间:2019-05 第6...

  • iOS_OpenCV图像阈值化 (1)

    图像阈值化的思想是:给定一个数组或者阈值,然后根据数组中的每个元素的值是高于还是低于阈值而进行一些处理。 1、固定...

  • openCV:图像的阈值处理

    阈值处理 定义 阈值处理即图像二值化。是图像分割的一种最简单的方法。二值化可以把灰度图像转换成二值图像。把大于某个...

网友评论

      本文标题:阈值处理

      本文链接:https://www.haomeiwen.com/subject/qbndoltx.html