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中。
相关推荐
腾视科技36 分钟前
让安全驾驶有“AI”相伴|腾视科技DMS视频监控一体机,守护每一次出行
人工智能·科技·安全
桃子叔叔1 小时前
从0到1讲解大模型中的关键步骤(一)分词、词性标注、命名实体识别
人工智能·大模型·多模态
ARM+FPGA+AI工业主板定制专家1 小时前
【JETSON+FPGA+GMSL】实测分享 | 如何实现激光雷达与摄像头高精度时间同步?
人工智能·数码相机·机器学习·fpga开发·机器人·自动驾驶
Nina_7171 小时前
Google提示词白皮书总结(2)
人工智能·python
fakerth1 小时前
【OpenHarmony】AI引擎模块架构
人工智能·架构·openharmony
综合热讯1 小时前
湖南粒界教育科技有限公司:专注影视技能培养,AI辅助教学提升学员就业竞争力
人工智能·科技
ImAlex1 小时前
实测PaddleOCR-VL:文心4.5最强衍生模型如何重构文档处理效率
人工智能·aigc
武子康1 小时前
AI-调查研究-105-具身智能 机器人学习数据采集:从示范视频到状态-动作对的流程解析
人工智能·深度学习·机器学习·ai·系统架构·机器人·具身智能
算力魔方AIPC2 小时前
Spec-Kit+Copilot打造AI规格驱动开发
人工智能·驱动开发·copilot
拓端研究室2 小时前
视频讲解|Python遗传算法GA在车辆路径规划VRP数据优化中的应用
开发语言·人工智能·r语言