美文网首页图像处理
图片处理-opencv-4.图像阈值化

图片处理-opencv-4.图像阈值化

作者: lk311 | 来源:发表于2020-10-15 16:30 被阅读0次

    图像阈值化

    图像的二值化或阈值化(Binarization)旨在提取图像中的目标物体,将背景以及噪声区分开来。通常会设定一个阈值T,通过T将图像的像素划分为两类:大于T的像素群和小于T的像素群。
    灰度转换处理后的图像中,每个像素都只有一个灰度值,其大小表示明暗程度。二值化处理可以将图像中的像素划分为两类颜色


    图像阈值化处理操作,包括二进制阈值化、反二进制阈值化、截断阈值化、反阈值化为0、阈值化为0

    retval, dst = cv2.threshold(src, thresh, maxval, type)

    • src:表示的是图片源
    • thresh:表示的是阈值(起始值)
    • maxval:表示的是最大值
    • type:表示的是这里划分时使用的算法,常用值为0(cv2.THRESH_BINARY)
      1. 二进制阈值化(cv2.THRESH_BINARY):大于等于阈值的像素点的灰度值设定为最大值,灰度值小于阈值的像素点的灰度值设定为0
      2. 反二进制阈值化(cv2.THRESH_BINARY_INV):大于阈值的像素点的灰度值设定为0,小于该阈值的灰度值设定为255
      3. 截断阈值化(cv2.THRESH_TRUNC):大于等于阈值的像素点的灰度值设定为该阈值,小于该阈值的灰度值不改变
      4. 反阈值化为0(cv2.THRESH_TOZERO_INV):大于等于阈值的像素点变为0,小于该阈值的像素点值保持不变
      5. 阈值化为0(cv2.THRESH_TOZERO):大于等于阈值的像素点,值保持不变,小于该阈值的像素点值设置为0
    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    plt.figure(figsize=(15, 10))
    
    #读取图像
    img = cv2.imread('data/test1.jpg')
    lenna_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    GrayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    #阈值化处理
    #二进制阈值化
    ret, thresh1 = cv2.threshold(GrayImage, 127, 255, cv2.THRESH_BINARY)
    #反二进制阈值化
    ret, thresh2 = cv2.threshold(GrayImage, 127, 255, cv2.THRESH_BINARY_INV)
    #截断阈值化
    ret, thresh3 = cv2.threshold(GrayImage, 127, 255, cv2.THRESH_TRUNC)
    #阈值化为0
    ret, thresh4 = cv2.threshold(GrayImage, 127, 255, cv2.THRESH_TOZERO)
    #反阈值化为0
    ret, thresh5 = cv2.threshold(GrayImage, 127, 255, cv2.THRESH_TOZERO_INV)
    
    #显示结果
    titles = [
        'Gray Image', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV'
    ]
    images = [GrayImage, thresh1, thresh2, thresh3, thresh4, thresh5]
    for i in range(6):
        plt.subplot(2, 3, i + 1)
        plt.imshow(images[i], 'gray')
        plt.title(titles[i])
        plt.xticks([]), plt.yticks([])
    plt.show()
    
    image.png

    相关文章

      网友评论

        本文标题:图片处理-opencv-4.图像阈值化

        本文链接:https://www.haomeiwen.com/subject/bsampktx.html