先决条件: 使用OpenCV的简单阈值
【Python使用OpenCV的阈值技术Set-2(自适应阈值)】在里面以前的帖子, 使用不同类型的阈值技术解释了简单阈值。另一种阈值技术是自适应阈值。在”
简单阈值”
中, 使用了全局阈值, 该全局值始终保持不变。因此, 恒定的阈值对于不同区域的光照条件变化无济于事。自适应阈值化是针对较小区域计算阈值的方法。对于照明的变化, 这导致针对不同区域的不同阈值。我们用cv2.adaptiveThreshold为了这。
语法:cv2.adaptiveThreshold(source, maxVal, 自适应方法, thresholdType, 块大小, 常数)以下是Python实现:
参数:
-> 源:输入图像数组(单通道, 8位或浮点数)
-> maxVal:可以分配的最大值一个像素。
-> adaptiveMethod:自适应方法决定如何计算阈值。 cv2.ADAPTIVE_THRESH_MEAN_C:阈值=(邻域值的平均值–恒定值)。换句话说, 它是一个点的blockSize×blockSize邻域的平均值减去常数。 cv2.ADAPTIVE_THRESH_GAUSSIAN_C:阈值=(邻域值的高斯加权和–常数)。换句话说, 它是点减去常量的blockSize×blockSize邻域的加权和。
-> thresholdType:要应用的阈值类型。
-> blockSize:用于计算阈值的像素邻域的大小。
-> 常数:从附近像素的平均值或加权和中减去的常数值。
# Python program to illustrate
# adaptive thresholding type on an image# organizing imports
import cv2
import numpy as np # path to input image is specified and
# image is loaded with imread command
image1 = cv2.imread( 'input1.jpg' ) # cv2.cvtColor is applied over the
# image input with applied parameters
# to convert the image in grayscale
img = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)# applying different thresholding
# techniques on the input image
thresh1 = cv2.adaptiveThreshold(img, 255 , cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 199 , 5 )thresh2 = cv2.adaptiveThreshold(img, 255 , cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 199 , 5 )# the window showing output images
# with the corresponding thresholding
# techniques applied to the input image
cv2.imshow( 'Adaptive Mean' , thresh1)
cv2.imshow( 'Adaptive Gaussian' , thresh2)# De-allocate any associated memory usage
if cv2.waitKey( 0 ) &
0xff = = 27 :
cv2.destroyAllWindows()
输入图像:
文章图片
输出如下:
文章图片
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- Python使用OpenCV的阈值技术Set-1(简单阈值)
- Python使用OpenCV的阈值技术第三组(Otsu Thresholding)
- Python Tkinter – Checkbutton小部件用法示例
- Python – Tkinter选择颜色对话框
- Python | NLP餐厅评论分析
- Python嵌套字典介绍和用法示例
- 算法班2021版
- 优启通PE工具箱[VIP] v3.7.2022.0106 官方22年1月版
- docker containerd cri-o 添加 crun runtime