在之前的帖子中, 简单阈值和自适应阈值被解释了。在”
简单阈值”
中, 使用的阈值全局值始终保持恒定。在自适应阈值化中, 针对较小区域计算阈值, 相对于照明的变化, 较小区域具有针对不同区域的不同阈值。
在Otsu Thresholding中,阈值不是被选择的,而是自动确定的。考虑一个双峰图像(两个不同的图像值)。生成的直方图包含两个峰。因此,一个通用的条件是选择一个位于两个直方图峰值中间的阈值。
我们使用传统 cv2.threshold功能与用途 cv2.THRESH_OTSU 作为额外的标志。
语法:cv2.threshold(source, thresholdValue, maxVal, thresholdingTechnique)以下是解释Otsu阈值技术的Python代码-
参数:
-> source:输入图像数组(必须为灰度)。
-> thresholdValue:低于和高于此阈值的阈值, 像素值将相应更改。
-> maxVal:可以分配给像素的最大值。
-> thresholdingTechnique:要应用的阈值类型。
# Python program to illustrate
# Otsu 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 Otsu thresholding
# as an extra flag in binary
# thresholding
ret, thresh1 = cv2.threshold(img, 120 , 255 , cv2.THRESH_BINARY +
cv2.THRESH_OTSU)# the window showing output image
# with the corresponding thresholding
# techniques applied to the input image
cv2.imshow( 'Otsu Threshold' , thresh1)# De-allocate any associated memory usage
if cv2.waitKey( 0 ) &
0xff = = 27 :
cv2.destroyAllWindows()
输入如下:
输出如下:
该计算接受图片在前景像素和背景像素之后包含两类像素, 在那一点上确定了隔离这两类的理想极限, 目的是使它们的合并散布无关紧要。
【Python使用OpenCV的阈值技术第三组(Otsu Thresholding)】首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- Python使用OpenCV的阈值技术Set-2(自适应阈值)
- Python Tkinter – Checkbutton小部件用法示例
- Python – Tkinter选择颜色对话框
- Python | NLP餐厅评论分析
- Python嵌套字典介绍和用法示例
- 算法班2021版
- 优启通PE工具箱[VIP] v3.7.2022.0106 官方22年1月版
- docker containerd cri-o 添加 crun runtime
- #yyds干货盘点#kubernetes入门基础-pod的概念以及相关操作