OpenCV图像处理——自适应阈值处理函数 adaptiveThreshold

目录

[1. Otsu算法](#1. Otsu算法)

[2. 自适应阈值函数 adaptiveThreshold](#2. 自适应阈值函数 adaptiveThreshold)

[3. 示例](#3. 示例)


1. Otsu 算法

让 cv::threshold() 尝试确定阈值处理的最优值是可能的。只需传递参数 cv::THRESH_OTSU 作为 thresh 值即可。

简言之,Otsu 算法考虑所有可能的阈值,并计算两类像素(即,低于阈值的像素类和高于阈值的像素类)的每一类的方差 。Otsu 算法算小化下列值:

其中, 由每一类像素中像素数量给出的两类相对权重,而 是每一类中的方差。它已证明,按这种方式最小化这两类方差与最小化这两类之间的方差相同。由于要求穷尽搜索可能阈值空间,因此,这种方法不是特别快。

2. 自适应阈值函数adaptiveThreshold

在该方法中,算法会针对图像的局部小区域分别计算阈值。因此,同一幅图像的不同区域将获得各自独立的阈值,从而针对光照变化不均的图像产生更佳的处理效果

cv::adaptiveThreshold (src, dst, maxValue, adaptiveMethod, thresholdType, blockSize, C)

参数:

(1) src------源 8 位单通道图像。

(2) dst------与 src 大小及类型均相同的目标图像。

(3) maxValue------为满足条件的像素赋予非零值。

(4) adaptiveMethod------待使用的自适应阈值算法,它决定了如何计算阈值:

cv::ADAPTIVE_THRESH_MEAN_C

cv::ADAPTIVE_THRESH_GAUSSIAN_C

(5) thresholdType ------阈值类型,必须为 cv::THRESH_BINARY cv::THRESH_BINARY_INV

(6) blockSize ------用于计算像素阈值的像素邻域大小:3、5、7 等 。

(7) C------从均值或加权均值中减去的常数(详见下文)。通常为正值,但也可能为零或负值。

3. 示例

void Test_adaptiveThreshold()

{

string filename = "D:\\TestVideo\\Flower6-2.jpg";

Mat src, src_gray, dst;

src = imread(samples::findFile(filename), IMREAD_COLOR); // Load an image

cvtColor(src, src_gray, COLOR_BGR2GRAY); // 转换为灰度图像

cv::adaptiveThreshold(

src_gray,

dst,

255,

cv::ADAPTIVE_THRESH_GAUSSIAN_C,

cv::THRESH_BINARY,

3,

2

);

// Show the results.

//

cv::imshow("Adaptive Threshold", dst);

cv::waitKey(0);

}

运行结果:

原图:

自适应阈值处理后的图像:

相关推荐
HIT_Weston19 小时前
183、【Agent】【OpenCode】TuiThreadCmd(JS&TS 历史)
人工智能·agent·opencode
蓝狐社19 小时前
你的软件越来越卡,是因为它多了个AI
人工智能
万悉科技20 小时前
AI时代的“搜索战争“变了:从关键词排名到意图匹配,品牌正在大模型的注意力机制里“失声“
人工智能
W_3260020 小时前
Python-OpenCV HSV颜色空间与inRange颜色分割:按颜色提取目标物体
图像处理·人工智能·python·opencv·机器学习
小小测试开发20 小时前
Agent 安全测试:pytest 原生红队框架 RAMPART 实战解析
人工智能·pytest
FunTester20 小时前
DeepSeek Harness 常用插件介绍
人工智能·语言模型·常用插件·deepseek·harness
九硕智慧建筑一体化厂家20 小时前
楼宇自控|智慧建筑核心引擎!楼宇自控系统,赋能建筑高效低碳运维
运维·人工智能·笔记·智慧城市
byte轻骑兵20 小时前
【BlueZ 】蓝牙 SDAP 协议入门:BlueZ 中设备服务发现的基础逻辑
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
老衲の少女心20 小时前
【AI项目】用 LangGraph 构建智能批改与解题系统:条件路由、SSE流式输出Agent工作流实践
人工智能
RobinDevNotes20 小时前
K8s+Megatron-LM+vLLM打通超大模型训练全链路
人工智能·kubernetes