OpenCV-Python Tutorials
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html
阈值(二值化操作),阈值又叫临界值,是指一个效应能够产生的的最低值或最高。
简单阈值
选取一个全局阈值,整个图像都和这个阈值比较,然后就把整幅图像分成了非黑即白的二值图像。
主要函数
ret, dst = cv2.threshold(src, thresh, maxval,type)
dst
: 输出图像src
: 输入图像,只能输入单通道图像,一般为灰度图thresh
: 阈值maxval
: 当像素值大于阈值(或者小于阈值,根据type来决定),所赋予的值type
:阈值操作的类型- cv2.THRESH_BINARY #二元阈值
- cv2.THRESH_BINARY_INV #逆二元阈值
- cv2.THRESH_TRUNC
- cv2.THRESH_TOZERO
- cv2.THRESH_TOZERO_INV
import cv2
import numpy as np
import matplotlib.pyplot as plt
import os
os.chdir('C:/Users/lenovo/Pictures/')
img = cv2.imread('butterfly.jpg',0) #读取图片并直接将图像灰度化
ret,thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY) #如果一个像素值低于127,则像素值转换为255(白色色素值),否则转换成0(黑色色素值)
ret,thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)
ret,thresh3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
ret,thresh4 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO)
ret,thresh5 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)
titles = ['Original Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERP_INV']
imgs = [