当前位置: 首页 > news >正文

python对图片进行二值化

在Python中实现图像二值化主要依赖图像处理库(如OpenCV或PIL)。以下是两种主流方法的详细实现:

方法1:使用OpenCV(推荐高性能场景)

import cv2# 读取图像(支持路径或直接读取)
image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)  # 直接转为灰度图# 全局阈值二值化(阈值设为128)
_, binary_image = cv2.threshold(image, 128, 255, cv2.THRESH_BINARY)# 自适应阈值(适用于光照不均场景)
adaptive_binary = cv2.adaptiveThreshold(image, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11,  # 邻域尺寸(需奇数)2    # 常数偏移量
)# 保存结果
cv2.imwrite('binary_global.jpg', binary_image)
cv2.imwrite('adaptive_binary.jpg', adaptive_binary)

方法2:使用PIL(轻量级方案)

from PIL import Image, ImageOps# 打开图像并转为灰度
img = Image.open('input.jpg').convert('L')# 手动二值化(阈值128)
binary_img = img.point(lambda p: 255 if p > 128 else 0)# 使用内置二值化方法
binary_img_builtin = ImageOps.colorize(img, black="black", white="white", threshold=0.5  # 0.0-1.0范围
)# 保存结果
binary_img.save('pil_binary.jpg')
binary_img_builtin.save('pil_builtin_binary.jpg')

关键参数说明

  1. 阈值选择

    • 全局阈值:128(中值)适用于对比度均匀的图像
    • 自适应阈值:通过adaptiveThreshold自动计算局部阈值
    • Otsu方法:cv2.THRESH_OTSU标志可自动计算最优阈值
  2. 注意事项

    • 安装依赖:pip install opencv-python pillow
    • 输入路径:确保图像文件存在或使用绝对路径
    • 颜色空间:处理前统一转为灰度图(cv2.COLOR_BGR2GRAY
    • 内存管理:大图像建议分块处理

扩展优化

  • 大津法(OTSU):在cv2.threshold中添加cv2.THRESH_OTSU标志
  • 颜色二值化:对彩色图像各通道分别处理后合并
  • 形态学操作:二值化后配合cv2.morphologyEx优化边缘

以上代码可直接复制运行,根据实际场景选择OpenCV(高性能)或PIL(轻量级)方案。处理前建议备份原始图像,处理后可通过matplotlib进行可视化验证。

http://www.dtcms.com/a/488158.html

相关文章:

  • Template [Item]PaperNote Error: TypeError: Zotero.ZoteroStyle is undefined
  • 网站排名做不上去吗wordpress 后台主题
  • 网站制作要多长时间网站内容的编辑和更新怎么做的
  • 【个人成长笔记】在Ubuntu中的Linux系统安装 anaconda 及其相关终端命令行
  • 老河口市建设局网站大连高端模板建站
  • 网站排名效果好苏州外贸网站制作
  • dino分类网络onnxruntime和tensorrt部署
  • Vue 响应式原理简易实现
  • 安徽省建设业协会网站项目营销策划公司
  • 网站建设程序员招聘网站开速度几秒
  • 商城程序搭建B2B2C平台的物流轨迹信息展示之在途监控API
  • 临沂国际外贸网站建设网站建设哪个最好
  • 台州黄岩网站建设车床加工东莞网站建设
  • 做薆视频网站网络营销推广的主要特点
  • 上海网站建设高端定制网络服务公司高端 建站
  • 深度解析 OCR识别 技术:从原理到应用生态的全景视角
  • 【原】linux内核RCU锁
  • Java的Object类详解--hashcode
  • 怎么用php自己做网站网址导航网站建设
  • 垂直门户网站都有什么wordpress is sticky
  • ONNXRuntime(CUDA版本)源码编译安装与C++部署Pytorch模型教程
  • JavaScript 01 【基础语法学习】
  • 建设门户网站的目的和需求西安专业做淘宝网站的公司
  • init wordpressseo诊断晨阳
  • 网站运营成本预算好看响应式网站模板下载
  • 建网站软件工具建一个设计网站要多少钱
  • AI Coding实现X2SeaTunnel的设计、开发与落地
  • 给做网站建设的一些建议网站首页的导航栏
  • MySQL——联合查询数据表
  • 在Springboot中处理log4j2日志文件