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

OpenCV阈值

3.1阈值

代码:

import cv2
from matplotlib import pyplot as plt

# 读取图像
img1 = cv2.imread("./image/card10.png")

# 检查图像是否成功加载
if img1 is None:
    print("Error: Image not found or unable to read.")
    exit()

# 转换为灰度图
gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)

# 应用不同的阈值操作
_, th1 = cv2.threshold(gray, 99, 255, cv2.THRESH_BINARY)
_, th2 = cv2.threshold(gray, 99, 255, cv2.THRESH_BINARY_INV)
_, th3 = cv2.threshold(gray, 99, 255, cv2.THRESH_TRUNC)
_, th4 = cv2.threshold(gray, 99, 255, cv2.THRESH_TOZERO)
_, th5 = cv2.threshold(gray, 99, 255, cv2.THRESH_TOZERO_INV)

# 设置标题列表(注意拼写错误:应该是 "original")
titles = ["Original", "TH_BINARY", "TH_BINARY_INV", "TH_TRUNC", "TH_TOZERO", "TH_TOZERO_INV"]
images = [img1, th1, th2, th3, th4, th5]

# 使用matplotlib显示图像
for i in range(6):
    plt.subplot(2, 3, i + 1)
    plt.imshow(images[i], cmap='gray')  # 使用cmap='gray'来指定灰度颜色映射
    plt.title(titles[i])
    plt.axis('off')  # 关闭坐标轴

plt.tight_layout()  # 调整子图参数以防止重叠
plt.show()

  • _, th1 = cv2.threshold(gray, 99, 255, cv2.THRESH_BINARY):对灰度图像gray进行二值化阈值操作。99是阈值,255是最大值,cv2.THRESH_BINARY表示二值化阈值类型。大于阈值的像素设置为最大值255(白色),小于等于阈值的像素设置为0(黑色),结果存储在th1中。
  • _, th2 = cv2.threshold(gray, 99, 255, cv2.THRESH_BINARY_INV):进行反二值化阈值操作。与THRESH_BINARY相反,大于阈值的像素设置为0,小于等于阈值的像素设置为255,结果存储在th2中。
  • _, th3 = cv2.threshold(gray, 99, 255, cv2.THRESH_TRUNC):截断阈值操作。大于阈值的像素设置为阈值99,小于等于阈值的像素保持不变,结果存储在th3中。
  • _, th4 = cv2.threshold(gray, 99, 255, cv2.THRESH_TOZERO):阈值化为 0 操作。大于阈值的像素保持不变,小于等于阈值的像素设置为0,结果存储在th4中。
  • _, th5 = cv2.threshold(gray, 99, 255, cv2.THRESH_TOZERO_INV):反阈值化为 0 操作。大于阈值的像素设置为0,小于等于阈值的像素保持不变,结果存储在th5中。

http://www.kler.cn/a/508053.html

相关文章:

  • python——句柄
  • 【C语言】_字符串拷贝函数strcpy
  • 深入云电脑PC Farm技术探讨,以阿里云、华为云、ToDesk为例
  • (01)FreeRTOS移植到STM32
  • 链家房价数据爬虫和机器学习数据可视化预测
  • 晨辉面试抽签和评分管理系统之十:如何搭建自己的数据库服务器,使用本软件的网络版
  • 【C语言】_内存拷贝函数memcpy与memmove
  • Matplotlib基础
  • 【Elasticsearch】搜索类型介绍,以及使用SpringBoot实现,并展现给前端
  • 深度学习基础--GRU学习笔记(李沐《动手学习深度学习》)
  • 如何用ChatGPT玩转知识图谱?
  • NLP意图识别数据集处理流程
  • PyTorch 神经协同过滤 (NCF) 推荐系统教程
  • 【 MySQL 学习3】查询
  • 当当网书籍信息爬虫
  • 【教程】windows下使用docker部署hyperf框架
  • Java最常用的几种设计模式详解及适用业务场景
  • 论文阅读:Structure-Driven Representation Learning for Deep Clustering
  • Vue2+OpenLayers实现折线绘制功能(提供Gitee源码)
  • MySQL 的mysql_secure_installation安全脚本执行过程介绍
  • jenkins-Job构建
  • 55.【5】BUUCTF WEB NCTF2019 sqli
  • 前端框架: Vue3组件设计模式
  • 【经典神经网络架构解析篇】【6】MobileNet网络详解:模型结构解析、创新点、代码实现
  • 重拾Python学习,先从把python删除开始。。。
  • 电子应用设计方案94:智能AI门禁系统设计