OpenCV基础

3.2自适应阈值

运行截图

复制代码
import cv2
from matplotlib import pyplot as plt

# 读取图像
im1 = cv2.imread("./image/qp.jpg")

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

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

# 应用全局阈值
ret, th1 = cv2.threshold(gray, 66, 255, cv2.THRESH_BINARY)

# 应用自适应阈值(均值)
th2 = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C,
                            cv2.THRESH_BINARY, 11, 2)

# 应用自适应阈值(高斯)并反二值化
th3 = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
                            cv2.THRESH_BINARY_INV, 11, 2)

# 设置标题列表(修正拼写错误)
titles = ["Original", "TH_BINARY", "TH_ADAPTIVE_MEAN_C", "TH_ADAPTIVE_GAUSSIAN_C_INV"]
images = [im1, th1, th2, th3]

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

plt.tight_layout()  # 调整子图布局
plt.show()
  • ret, th1 = cv2.threshold(gray, 66, 255, cv2.THRESH_BINARY):对灰度图像gray进行全局二值化阈值处理。
    • 66是设定的阈值。
    • 255是最大值。
    • cv2.THRESH_BINARY表示阈值类型为二值化,即大于阈值的像素设置为最大值255(白色),小于等于阈值的像素设置为0(黑色),处理结果存储在th1中,ret是返回的阈值(这里未使用)。
    • th2 = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2):对灰度图像gray进行自适应阈值处理,采用均值方法。
      • 255是最大值。
      • cv2.ADAPTIVE_THRESH_MEAN_C表示自适应阈值类型为均值。
      • cv2.THRESH_BINARY表示阈值类型为二值化。
      • 11是邻域大小,即计算阈值时考虑的像素邻域大小。
      • 2是从均值或加权均值中减去的常数,用于调整阈值,处理结果存储在th2中。
      • th3 = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2):对灰度图像gray进行自适应阈值处理,采用高斯方法,并进行反二值化。
        • 255是最大值。
        • cv2.ADAPTIVE_THRESH_GAUSSIAN_C表示自适应阈值类型为高斯。
        • cv2.THRESH_BINARY_INV表示阈值类型为反二值化,即大于阈值的像素设置为0,小于等于阈值的像素设置为255。
        • 11是邻域大小。
        • 2是从加权均值中减去的常数,处理结果存储在th3中。
相关推荐
老金带你玩AI4 小时前
这几天,我都是拿手机让dot帮我干活
人工智能
7yewh7 小时前
SLAM 三维空间刚体运动(2)
数据结构·人工智能·机器人·嵌入式·slam
小虎AI生活7 小时前
WorkBuddy 模型选型实操:0.03 倍的 Space-Bunny 怎么用、派什么活、避什么坑
人工智能·超级个体·一人公司·青玥ai
ai小陈7 小时前
GPU服务器租用存储验收:检查点写入与磁盘吞吐实战
运维·服务器·人工智能·ai·ssh·gpu算力
微三云马玮均—GEO源码系统 私有化部署7 小时前
消费返物业费:消费+服务趋势的必然产物!
大数据·人工智能·物联网·区块链·生活
明月_清风8 小时前
Muse 登顶 App Store 第一,SDK 直接开源:AI Agent 开始进入下一个阶段
人工智能·后端
JackSparrow4148 小时前
和AI一起将全部CSDN博文迁移到个人博客站
人工智能·程序人生·ai·github·cloudflare·astro·静态博客
55873 生态系统8 小时前
第 22 篇|社区聊天|55873 文明共建者的日常交流与协作界面
人工智能·区块链·55873全域文明生态体系·55873操作系统·55873社区聊天
搬砖的小码农_Sky8 小时前
AI Agent:如何处理Claude Code 最近版本(2026年更新)引入的模型上下文限制
人工智能·windows·ai·ai编程