Opencv学习笔记:一行实现图像自定义二值化
·
图像二值化是图像处理的基础操作,核心是将图像像素划分为黑白两类。本文通过极简代码,演示如何用 OpenCV 实现自定义阈值的图像二值化,新手也能快速上手。
核心代码实现
import cv2 as cv
# 1. 读取图像
src = cv.imread("./image/2.bmp")
if src is None:
print('could not load image')
exit()
# 2. 显示原始图像
cv.imshow("src", src)
# 3. 转灰度图(二值化前必须步骤)
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
# 4. 自定义阈值二值化:阈值100,最大值255,二值化模式
ret, binary = cv.threshold(gray, 100, 255, cv.THRESH_BINARY)
# 5. 显示二值化结果
cv.imshow('outimage', binary)
# 6. 等待按键并释放窗口
cv.waitKeyEx(0)
cv.destroyAllWindows()
关键知识点解析
- 二值化前提:
cv.threshold仅支持单通道灰度图,因此必须先通过COLOR_BGR2GRAY将彩色图转灰度。 - 阈值参数说明:
100:自定义阈值(像素值>100 设为 255,≤100 设为 0);255:二值化后的最大值(通常固定为 255,代表白色);cv.THRESH_BINARY:基础二值化模式(反向用cv.THRESH_BINARY_INV)。
- 返回值含义:
ret是实际使用的阈值(自定义阈值下等于设定值),binary是二值化后的图像矩阵。
效果调整技巧
- 调高低阈值(如 150):二值化后黑色区域更多,细节减少;
- 调低阈值(如 50):白色区域更多,保留更多细节;
- 替换模式为
cv.THRESH_BINARY_INV:实现黑白反转的二值化效果。
更多推荐
所有评论(0)