OpenCV阈值处理详解
一、引言
在数字图像处理中,阈值处理(Thresholding)是最基础且重要的操作之一。OpenCV作为计算机视觉领域的强大工具,提供了多种阈值处理方法,能够帮助我们将灰度图像转换为二值图像,或者进行更高级的图像分割。本文将全面介绍OpenCV中的阈值处理技术。
二、阈值处理的基本概念
2.1 什么是阈值处理?
阈值处理是指将图像的像素值根据某个阈值(Threshold Value)划分为两个或多个类别。对于最简单的二值化处理,公式表示为:
import cv2
# 闽值处理是指别除图像内像素值高于一定值或低于一定值的像素点。使用的方法为
#retval,dst=cv2.threshold(src,thresh,maxval,type
#retval代表返回的阙值
# dst代表闽值分割结果图像,与原始图像具有相同的大小和类型
# src代表要进行调值分割的图像,可以是多通道的,8位或32位浮点型数值
# thresh代表要设定的阙值
# maxval/表type参数位THRESH_BINARY或者THRESH_BINARY_INV类型时,需要设定的最大值
# type代表闽值分割的类型,县体内容如下表所示:img = cv2.imread('7eab68802d26d2ce01b7a6e1c6469059_t044a6cd031ced2bff9.jpg', 0)
img = cv2.resize(img, (500,500))
ret, binary =cv2.threshold(img,150,255, cv2.THRESH_BINARY)
ret1,binaryinv=cv2.threshold(img,150, 255,cv2.THRESH_BINARY_INV)
ret2,trunc=cv2.threshold(img, 150, 255, cv2.THRESH_TRUNC)
ret3,tozero = cv2.threshold(img, 158,255, cv2.THRESH_TOZERO)
ret4,tozeroinv =cv2.threshold(img,150,255,cv2.THRESH_TOZERO_INV)
cv2.imshow('img',img)#原灰度图
cv2.imshow('binary',binary)#偏白的变纯白,偏黑的变纯黑
cv2.imshow('binaryinv',binaryinv)#解白的变纯黑,俄黑的变纯户
cv2.imshow('trunc',trunc)#自色变得一样灰家象,偏黑的不变
cv2.imshow('tozero',tozero) #偏自色不变,偏黑的就变纯黑
cv2.imshow('tozeroinv',tozeroinv)#偏自色变纯黑,偏黑的不变
cv2.waitKey(0)
cv2.destroyAllWindows()