话不多说直接上图:
直接上代码:
# 加载环境包
import cv2
import numpy as np
# from PIL import Image
# 图片简单处理
img = cv2.imread('C:\\Users\\Tony.Hsu\\Desktop\\hh_08.bmp') # 读取图片
GrayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 灰度化
GrayImage = cv2.medianBlur(GrayImage, 25) # 中值模糊,medianBlur()函数使用中值滤波器来平滑图像。
# 阈值处理,输入图片默认为单通道灰度图片
ret, th1 = cv2.threshold(GrayImage, 127, 255, cv2.THRESH_TOZERO) # 固定阈值二值化
# threshold为固定阈值二值化
# 第二参数为阈值
# 第三参数为当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值(一般情况下,都是256色,所以默认最大为255)
# thresh_binary是基于直方图的二值化操作类型,配合threshold一起使用。此外还有cv2.THRESH_BINARY; cv2.THRESH_BINARY_INV;
# cv2.THRESH_TRUNC; cv2.THRESH_TOZERO;cv2.THRESH_TOZERO_INV
th2 = cv2.adaptiveThreshold(GrayImage, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 3, 5)
# adaptiveThreshold自适应阈值二值化,自适应阈值二值化函数根据图片一小块区域的值来计算对应区域的阈值,从而得到也许更为合适的图片。
# 第二参数为当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值(一般情况下,都是256色,所以默认最大为255)
# 第三参数为阈值计算方法,类型有cv2.ADAPTIVE_THRESH_MEAN_C,cv2.ADAPTIV