图像二值化 二值图像:只有黑和白 0 代表黑色 1 其实是255 代表白色 图像二值化的方法 全局阈值 局部阈值 OTSU Triangle 手动与自动 自适应阈值 相关代码 import cv2 as cv import numpy as np def threshold_demo(image): """ 全局阈值 :param image: :return: """ # 首先图像灰度化处理 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # 函数参数 输入的图像 阈值 最大值 在OpenCV中,图像二值化是一种将图像转化为只有黑白两色(通常0代表黑色,255代表白色)的处理方法,它简化了图像,便于后续的分析和处理。这个过程通过设置阈值来实现,低于阈值的像素被设为黑色,高于阈值的像素则被设为白色。 在提供的代码中,`threshold_demo`函数展示了多种不同的二值化方法。图像通常需要进行灰度化处理,即通过`cv.cvtColor`函数将彩色图像转换为灰度图像,这一步由`gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)`完成。 1. **全局阈值**:适用于背景和前景对比明显的图像。使用`cv.threshold`函数,传入灰度图像、阈值、最大值以及阈值类型(如`cv.THRESH_BINARY`或`cv.THRESH_BINARY_INV`)。例如,`ret, binary = cv.threshold(gray, 127, 255, cv.THRESH_BINARY)`将所有大于127的像素设为255(白色),小于等于127的设为0(黑色)。 2. **Otsu's 自适应阈值**(`cv.THRESH_OTSU`):自动计算最优阈值,适用于光照不均匀的场景。`ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)`,这里的`ret`会返回自动计算出的阈值。 3. **截断阈值**(`cv.THRESH_TRUNC`):大于阈值的像素设为阈值,小于阈值的保持不变。例如,`ret, binary = cv.threshold(gray, 127, 255, cv.THRESH_TRUNC)`,所有大于127的像素被设为127。 4. **零阈值**(`cv.THRESH_TOZERO`):小于阈值的像素设为0,大于阈值的保持不变。如`ret, binary = cv.threshold(gray, 127, 255, cv.THRESH_TOZERO)`,所有小于127的像素变为0。 5. **局部阈值**:`local_threshold`函数中,使用`cv.adaptiveThreshold`实现,它根据图像的局部区域计算阈值,适应光照变化。`binary = cv.adaptiveThreshold(gray, 255, cv.ADAPTIVE_THRESH_GAUSSIAN_C, cv.THRESH_BINARY, 25, 10)`,这里的参数分别表示输入图像、最大值、适应性阈值方法(高斯加权或平均)、邻域大小和常数值。 6. **自定义阈值**:`custom_threshold`函数中,先计算图像的均值作为阈值,然后进行二值化处理。`mean = m.sum() / (w * h)`计算均值,`ret, binary = cv.threshold(gray, mean, 255, cv.THRESH_BINARY)`用均值作为阈值进行二值化。 代码加载了一张名为"tree.jpg"的图像,对它进行了各种阈值处理,并显示结果。通过`cv.imshow`显示图像,`cv.waitKey(0)`暂停程序,等待用户按键,`cv.destroyAllWindows()`关闭所有窗口。 图像二值化是图像处理的基础操作,广泛应用于文字识别、边缘检测、物体分割等场景。通过选择合适的阈值或阈值计算方法,可以优化图像并提高后续处理的效率和准确性。
- 粉丝: 4
- 资源: 923
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C#开发Bartender模板打印WPF 1. 电脑上安装对应打印机的驱动 2. 安装Bartender软件,必须安装,不然无法打印 3. 使用Bartender制作打印模板
- 基于Python+LSTM的文本情感分析系统源码+全部资料(高分项目)
- 自测使用,使用eclipse运行
- c语言简单圣诞树图案代码
- C#winform 千万级数据读写操作处理.zip(sqllite\sql)
- C# 远程写入文件接口.zip
- Mentor常规设置及物料BOM导出操作指南
- 基于一种低通滤波反电势观测器的永磁同步电机无感FOC 采用的反电势观测器相比传统的SMO、龙伯格等反电势观测方法,在算法结构上更加简单,参数调节容易,只有一个参数 1.提供算法对应的参考文献和仿真模
- 船舶检测27-YOLO(v5至v11)、COCO数据集合集.rar
- dthfyjfuygugugg
- 遥感图像分割 UDD6城市无人机数据集.zip
- C# winform-Modbus协议扫码上位机.zip
- 基于Python+LSTM的文本情感分析系统源码(95分以上大作业)
- 基于自抗扰控制器ADRC的永磁同步电机FOC 1.转速环采用ADRC,和传统PI进行对比来分析ADRC控制性能的优越性 对ADRC中的ESO进行改进,进一步提高了ADRC性能 2.提供算法对应的参
- 铁片排列机sw18可编辑全套技术开发资料100%好用.zip
- C# WPF西门子200SMART拉力测试上位机.zip