自适应阈值

作者: 陨星落云 | 来源:发表于2020-02-24 13:12 被阅读0次

自适应阈值:

​ 当同一幅图像上的不同部分的具有<u>不同亮度</u>时。这种情况下我们需要采用自适应阈值。此时的阈值是根据图像上的每一个小区域计算与其对应的阈值。因此在同一幅图像上的不同区域采用的是不同的阈值,从而使我们能在亮度不同的情况下得到更好的结果。

cv2.adaptiveThreshold(src,x,adaptive_method, threshold_type,block_size,param1)

参数:

src:指原图像,原图像应该是灰度图。

x :指当像素值高于(有时是小于)阈值时应该被赋予的新的像素值

adaptive_methodCV_ADAPTIVE_THRESH_MEAN_CCV_ADAPTIVE_THRESH_GAUSSIAN_C

threshold_type : 指取阈值类型:

​ 必须是 CV_THRESH_BINARY, CV_THRESH_BINARY_INV

block_size: 指用来计算阈值的象素邻域大小: 3, 5, 7, ...

param1 :指与方法有关的参数。对方法CV_ADAPTIVE_THRESH_MEAN_CCV_ADAPTIVE_THRESH_GAUSSIAN_C, 它是一个从均值或加权均值提取的常数, 尽管它可以是负数。

自适应阈值:

  • 对方法CV_ADAPTIVE_THRESH_MEAN_C,先求出块中的均值,再减掉param1
  • 对方法 CV_ADAPTIVE_THRESH_GAUSSIAN_C ,先求出块中的加权和(gaussian), 再减掉param1

例:

import cv2
import numpy as np
import  matplotlib.pyplot as plt
img = cv2.imread("text1.png",0)

# img = cv2.resize(img,(0,0),fx=0.5,fy=0.5)
# 全局阈值
(t,thresh) = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
# 自适应阈值
thresh0 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,5,4)
thresh1 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,5,4)

plt.figure(figsize=(8,10))
plt.subplot(221)
plt.imshow(img,cmap="gray")
plt.xlabel("原图",fontproperties='SimHei')
plt.subplot(222)
plt.imshow(thresh,cmap="gray")
plt.xlabel("OTSU阈值",fontproperties='SimHei')
plt.subplot(223)
plt.imshow(thresh0,cmap="gray")
plt.xlabel("自适应高斯阈值",fontproperties='SimHei')
plt.subplot(224)
plt.imshow(thresh1,cmap="gray")
plt.xlabel("自适应均值阈值",fontproperties='SimHei')
plt.show()

输出结果:

自适应阈值.png

相关文章

  • OpenCV-Python学习(四):阈值操作

    目录: 1.图像二值化 2.阈值操作简单阈值(全局阈值)自适应阈值(局部阈值) 3.简单阈值 vs 自适应阈值 一...

  • 1.10 openCV-python 图像阈值

    图像阈值 简单阈值,自适应阈值,Otsu’s 二值化等

  • 阈值化

    OpenCV-图像阈值-简单阈值、自适应阈值、Otsu’s 二值化

  • 自适应阈值

    自适应阈值: ​ 当同一幅图像上的不同部分的具有 不同亮度 时。这种情况下我们需要采用自适应阈值。此时的...

  • adaptiveThreshold()vs.ostu()

    自适应的阈值方法,相比于ostu,该方法主要是基于局部进行的自适应阈值的设置。该方法能避免整张图像亮度分布不均的情...

  • 图像去噪

    图像去噪可以分为固定阈值去噪和自适应阈值去噪 固定阈值去噪 opencv函数(python):cv2.thresh...

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

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

  • 自适应阈值处理

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

  • 问题

    1.pc1b.png0阈值二值化正常线条,自适应二值化多了冗余线条。 自适应二值化后图片: 原因是这部分是灰图,但...

  • 局部自适应阈值分割算法

    S. D. Yanowitz and A. M. Bruckstein, “A new method for im...

网友评论

    本文标题:自适应阈值

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