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二值化

原文地址:https://www.cnblogs.com/venicid/p/7833530.html