OpenCV自学笔记九:阈值处理

  1. 阈值处理(Thresholding):阈值处理是一种图像分割的方法,它根据像素灰度值与设定的阈值进行比较,将像素分为两个类别(例如黑白、前景背景等)。阈值处理可以用于目标检测、图像增强等应用。在OpenCV中,常用的阈值处理函数是`cv2.threshold()`。

  2. threshold函数:`cv2.threshold(src, thresh, maxval, type[, dst])`是OpenCV中的阈值处理函数。它接受源图像、设定的阈值、最大值、阈值类型以及可选参数目标图像作为输入,并返回两个结果:阈值和处理后的图像。

  3. 自适应阈值处理(Adaptive Thresholding):自适应阈值处理是根据图像的局部特征,自动确定每个像素点的阈值。不同于固定阈值处理,自适应阈值处理能够在不同光照条件下得到更好的效果。在OpenCV中,可以通过`cv2.adaptiveThreshold()`函数实现自适应阈值处理。

  4. Otsu处理(Otsu's Thresholding):Otsu处理是一种自动确定二值化阈值的方法,它通过最小化类间方差或最大化类内方差的方式,找到最佳的阈值。Otsu处理可以在某些情况下得到更好的二值化结果。在OpenCV中,可以使用`cv2.threshold()`函数并将阈值类型设置为`cv2.THRESH_OTSU`来进行Otsu处理。

示例代码:

复制代码
import cv2

# 读取图像并转为灰度图

image = cv2.imread('input.jpg')

gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 使用固定阈值处理

_, binary_image = cv2.threshold(gray_image, 127, 255, cv2.THRESH_BINARY)

# 使用自适应阈值处理

adaptive_image = cv2.adaptiveThreshold(gray_image, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)

# 使用Otsu处理

_, otsu_image = cv2.threshold(gray_image, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)

# 显示图像

cv2.imshow('Binary Image', binary_image)

cv2.imshow('Adaptive Threshold Image', adaptive_image)

cv2.imshow('Otsu Image', otsu_image)

cv2.waitKey(0)

cv2.destroyAllWindows()

以上示例中,首先将彩色图像转换为灰度图像。然后使用固定阈值将灰度图像二值化,得到二值图像(`binary_image`)。接着使用自适应阈值处理函数`cv2.adaptiveThreshold()`对灰度图像进行自适应阈值处理,得到处理后的图像(`adaptive_image`)。最后使用Otsu处理方法将灰度图像二值化,得到Otsu处理后的图像(`otsu_image`)。可以根据具体需求调整阈值和参数以获得不同的阈值处理效果。

相关推荐
Michelle802317 分钟前
机器学习实战操作手册
人工智能·算法·机器学习
翔云 OCR API20 分钟前
护照NFC识读鉴伪接口集成-让身份核验更加智能与高效
开发语言·人工智能·python·计算机视觉·ocr
minhuan22 分钟前
大模型应用:基于本地大模型驱动的 MapReduce 文本总结与分类系统全解析.13
人工智能·mapreduce·大模型应用·qwen1.5·bert模型应用
景联文科技27 分钟前
景联文AI观察动态速递 第3期
人工智能·chatgpt
凯子坚持 c28 分钟前
体系化AI开发方案:豆包新模型矩阵与PromptPilot自动化调优平台深度解析
人工智能·矩阵·自动化
logocode_li29 分钟前
面试 LoRA 被问懵?B 矩阵初始化为 0 的原因,大多数人拿目标来回答
人工智能·python·面试·职场和发展·矩阵
喜欢踢足球的老罗32 分钟前
Qoder AI IDE深度体验:用Repo Wiki与AskModel重塑开源库学习范式
人工智能·学习·qoder
金融小师妹34 分钟前
基于LSTM趋势预测的白银价格突破58美元阈值,年度累计涨幅超100%的强化学习驱动分析
大数据·人工智能·编辑器·1024程序员节
极客BIM工作室35 分钟前
AI论文整理:Linguistic Binding in Diffusion Models
人工智能
茶色岛^1 小时前
解析CLIP:从“看标签”到“读描述”
人工智能·深度学习·机器学习