news 2026/4/16 18:46:56

OpenCV 学习9-灰度转黑白二值图像

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenCV 学习9-灰度转黑白二值图像

1、为什么需要图像二值化?

场景说明
文字识别(OCR)当需要提取图片(比如扫描的文件、发票图片、身份证)中的文字内容时,将图像二值化后,提高字符边缘清晰度,减少背景干扰,用于给OCR程序 识别
条形码 / 二维码识别快速识别黑白条纹图案
医学图像处理比如X光片中提取骨骼轮廓
目标检测与分割定位图像中的特定区域,可用于质检环节检测缺陷区域

将复杂的灰度或彩色图像简化为只有黑白两种状态的图像(0 和 255)

图像二值化可达到 “化繁为简”,在保留关键结构的同时去除冗余信息,在 OCR、目标分割、形态学处理等场景中非常有效。
当需要从图像中快速提取有|没有在哪里信息时,就可以尝试使用二值化处理。

2、图像二值化(Binarization)函数 cv2.threshold()

cv2.threshold() 是 OpenCV的图像二值化函数,将灰度图像转换为黑白二值图像。
通过设定一个阈值(threshold),将像素点分为两类:

  • >阈值为某一个值(如 255,白色)
  • ≤ 阈值为另一值(如 0,黑色)

2.1 函数定义

retval, dst = cv2.threshold(src, thresh, maxval, type)
  • 返回值
    dst:新的二值图像
    retval: 实际使用的阈值
  • 参数说明
参数类型说明
srcNumPy 数组必须是灰度图像
threshfloat设定的阈值,比如128
maxvalfloat当像素满足条件时,设置的最大值(通常为 255)
typeint阈值类型
  • 阈值类型 type 说明
类型名称含义
cv2.THRESH_BINARY二进制阈值化if pixel > thresh: 255 else 0
cv2.THRESH_BINARY_INV反向二进制if pixel > thresh: 0 else 255
cv2.THRESH_TRUNC截断if pixel > thresh: thresh else pixel
cv2.THRESH_TOZERO低于阈值清零if pixel <= thresh: 0 else pixel
cv2.THRESH_TOZERO_INV高于阈值清零if pixel > thresh: 0 else pixel
cv2.THRESH_OTSU自动计算最优阈值(基于 Otsu 算法)需和上述类型 按位或组合使用,
如cv2.THRESH_BINARY + cv2.THRESH_OTSU

2.2 OTSU

OTSU(大津算法) 是一种经典的自动图像二值化方法,用于在灰度图像中自动选择最佳阈值,将图像分为前景和背景两部分。由日本学者 大津展之(Nobuyuki Otsu) 1979年提出。

算法解决的主要问题是:在不知道阈值的情况下,如何自动找出一个“最优”阈值来分割图像?

OTSU 算法的思路是:
最大化类间方差(Between-class Variance),让前景(目标)和背景之间的差异尽可能大,从而使分割最清晰。

2.3 代码示例

importcv2importnumpyasnpimportos# 1.读取图像img_path="img/dog.jpg"ifnotos.path.exists(img_path):raiseFileNotFoundError(f"未找到图像文件{img_path}")img=cv2.imread(img_path,cv2.IMREAD_GRAYSCALE)thresh,img1=cv2.threshold(img,128,255,cv2.THRESH_BINARY)cv2.imshow("Original",img)cv2.imshow("threshold",img1)cv2.waitKey(0)cv2.destroyAllWindows()

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 10:14:08

基于SpringBoot + Vue的影院线上购票管理平台

文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 &#x1f49b;博主介绍&#…

作者头像 李华
网站建设 2026/4/15 10:54:01

投影镜头设计

投影镜头设计&#xff1a;从需求到落地的核心指南投影镜头是投影仪的“成像核心”&#xff0c;需同时满足高分辨率、大视场、低畸变、高对比度四大核心需求&#xff0c;适配家用、商务、工程等不同场景。以下是从原理到实操的系统设计框架。一、投影镜头的核心特性与设计需求1.…

作者头像 李华
网站建设 2026/4/16 13:32:52

鸿蒙Electron跨设备实战:分布式数据流转与实时共享方案

我将围绕鸿蒙Electron应用的“跨设备数据流转”核心场景&#xff0c;结合鸿蒙分布式软总线特性&#xff0c;打造一篇侧重“实战操作场景落地”的技术文章&#xff0c;兼顾开发效率与功能实用性。 鸿蒙Electron跨设备实战&#xff1a;分布式数据流转与实时共享方案 一、核心原理…

作者头像 李华
网站建设 2026/4/16 10:13:13

41、Linux 系统管理与操作实用技巧

Linux 系统管理与操作实用技巧 在 Linux 系统的使用和管理过程中,会遇到各种各样的任务和问题。本文将为你介绍一些常见问题的解决方案,包括文件重命名、文档查看、文件解压、会话恢复、会话共享以及日志记录等方面。 1. 批量重命名文件 在实际操作中,有时需要批量重命名…

作者头像 李华
网站建设 2026/4/16 4:41:44

JavaScript反混淆终极指南:快速掌握decodeObfuscator的完整操作手册

JavaScript反混淆终极指南&#xff1a;快速掌握decodeObfuscator的完整操作手册 【免费下载链接】decodeObfuscator 项目地址: https://gitcode.com/gh_mirrors/de/decodeObfuscator 在当今Web安全领域&#xff0c;JavaScript代码反混淆技术已成为开发者必备的核心技能…

作者头像 李华
网站建设 2026/4/16 13:32:09

WordPress编辑器极速优化:5个智能配置让编辑体验飞起来

你是否曾经在WordPress编辑器中遇到过这样的场景&#xff1a;点击一个块要等几秒才有反应&#xff0c;添加图片时页面卡顿&#xff0c;甚至保存文章时浏览器直接崩溃&#xff1f;这些让人头疼的性能问题&#xff0c;正在悄悄消耗你的创作热情。 【免费下载链接】gutenberg The …

作者头像 李华