day5 二值化
1.otsu二值化
# coding=utf-8 import cv2 import numpy as np from matplotlib import pyplot as plt #1.读入图像 filename = "home.jpg" img = cv2.imread(filename,0) #2.灰度图像 二值化 ret2,th2 = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU) #第1个参数:img,灰度原图像 #第2个参数:0对像素值进行分类的阈值 #第3个参数:255当像素值高于(有时是小于)阈值对应被赋予的新的像素值 #第4个参数:阈值方法 #第1个返回值:retVal #第2个返回值 thresh 处理后的图像 #3.plt 输出 plt.subplot(121),plt.imshow(img,'gray') plt.subplot(122),plt.imshow(th2,'gray') plt.show()
2.全局阈值 127
# coding=utf-8 import cv2 import numpy as np from matplotlib import pyplot as plt #1.读入图像 #img = cv2.imread('gradient.png',0) filename = "woman.JPEG" img = cv2.imread(filename,0) #2.灰度图像二值化 ret1,th1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY) #全局阈值127 ret2,th2 = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU) #3.plt展示图像 plt.subplot(221),plt.imshow(img) #plt.subplot(221),plt.imshow(img,'gray') plt.subplot(222),plt.imshow(th1) plt.subplot(223),plt.hist(img.ravel(),256,[0,256]) #直方图函数list plt.subplot(224),plt.imshow(th2) plt.show()
3.高斯核去噪,在Otsu二值化