OpenCV 图像二值化

OpenCV 图像二值化

温馨提示:本文最后更新于2025-06-12 11:54:04,某些文章具有时效性,若有错误或已失效,请在下方留言

图像二值化的目的是简化图像的处理难度,基本原理是以图像的某个阈值为分界线,小于阈值的为0,大于阈值的设置为某个特定值。

OpenCV 提供以下的方法进行二值化处理
threshold(src, thresh, MaxVal, type) -> tuple[float, UMat]
参数:
src: 需要处理的图像
thresh: 特定的阈值
MaxVal:大于阈值设置的特定值
type: 算法类型

返回值:
float:二值化是否成功
UMat:二值化处理后的图片

示例代码

# 使用OpenCV进行二值化
import cv2

# 读取图片
image = cv2.imread('IMG_1433.png')

# 显示原图
cv2.imshow('image', image)

# 将图片转换为灰度图
# COLOR_BGR2GRAY  将BGR格式转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 二值化
# THRESH_BINARY  将灰度图转换为二值图
# 参数100表示阈值,超过100的像素点变为255(白色),否则变为0(黑色)
ret, binary = cv2.threshold(gray, 100, 255, cv2.THRESH_BINARY)

# 显示二值化后的图片
cv2.imshow('gray', binary)

# 等待按键事件,参数为0表示无限等待
key = cv2.waitKey(0)
if key & 0xFF == ord('q'):
    # 如果按下的是'q'键,则关闭窗口
    cv2.destroyAllWindows()

原图

原图
原图

二值化的图片

二值化后的图片
二值化后的图片
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容