欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

opencv学习—threshold函数的使用(python)

程序员文章站 2024-03-22 09:41:10
...

opencv学习—threshold函数的使用

目录

opencv学习—threshold函数的使用

阈值类型

python代码:

示例如下:


参考博客

图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。OpenCV中提供了函数cv2.threshold();

阈值分割法的特点是:适用于目标与背景灰度有较强对比的情况,重要的是背景或物体的灰度比较单一,而且总可以得到封闭且连通区域的边界。

cv2.threshold (src, thresh, maxval, type)

cv2.threshold (源图片, 阈值, 填充色, 阈值类型)

  • src:单通道原图像

  • thresh:阈值,取值范围为(0~255),开始点

  • maxval:填充色,取值范围为(0,255),输出图像中灰度值最大值

  • type:阈值类型,如下所示:

阈值类型

opencv学习—threshold函数的使用(python)

 opencv学习—threshold函数的使用(python)

关系如下:

opencv学习—threshold函数的使用(python)

python代码:

import cv2
import matplotlib.pyplot as plt
#读入彩色RGB图像,转为灰度图像
img=cv2.imread("C:\\Users\\Lijian\\Desktop\\7.jpg")
img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#不同类型阈值处理
thresh,img1=cv2.threshold(img,1,255,cv2.THRESH_BINARY)
thresh,img2=cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)
thresh,img3=cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
thresh,img4=cv2.threshold(img,127,255,cv2.THRESH_TOZERO)
thresh,img5=cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)
titles=('img','THRESH_BINARY','THRESH_BINARY_INV','THRESH_TRUNC','THRESH_TOZERO','THRESH_TOZERO_INV')

images=[img,img1,img2,img3,img4,img5]
for i in range(6):
    plt.subplot(2,3,i+1),plt.imshow(images[i],cmap="gray")
    plt.title(titles[i])
    plt.xticks([]),plt.yticks([])
plt.show()

示例如下:

opencv学习—threshold函数的使用(python)

 

 

相关标签: opencv学习 opencv