python opencv local_threshold_python+opencv对图像进行二值化处理

一.采用Image类对图像进行明亮度,颜色,对比度等处理,去除图片上的干扰物。。。

# 图像增强

def image_enhance(image_path):

img = cv2.imread(image_path, cv2.IMREAD_COLOR)

img = Image.fromarray(img)

# 明亮度增强

img_bright = ImageEnhance.Brightness(img)

brightness = 1.9

img = img_bright.enhance(brightness)

# 对比度增强

img_contrast = ImageEnhance.Contrast(img)

contrast = 2.0

img = img_contrast.enhance(contrast)

# 颜色增强

img_color = ImageEnhance.Color(img)

color = 3.5

img = img_color.enhance(color)

# 锐度增强

img_sharp = ImageEnhance.Sharpness(img)

sharpness = 3.2

img = img_sharp.enhance(sharpness)

img = np.array(img)

return img

处理前:

07b652bcb3ea4496a8d7a59f0620d07f.jpg

处理后:

b200e74287bc48f69819c0037e755fe1.jpg

二.采用opencv对图片进行二值化处理

# 全局阈值

def threshold_demo(image):

image = cv2.imread(image, cv2.IMREAD_COLOR)

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

ret, binary = cv2.threshold(gray, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_TRIANGLE)

print(ret)

return binary

# 局部阈值

def local_threshold(image):

image = cv2.imread(image, cv2.IMREAD_COLOR)

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

binary = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 25, 10)

return binary

# 平均阈值

def custom_threshold(image):

image = cv2.imread(image, cv2.IMREAD_COLOR)

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

h, w = gray.shape[:2]

m = np.reshape(gray, [1, w * h])

mean = m.sum() / (h * w)

print(mean)

ret, binary = cv2.threshold(gray, mean, 255, cv2.THRESH_BINARY)

return binary

处理前:

a980d18fe32d45ae8d3347b4a095a4fa.jpg

处理后:

72f74892f88f494cb6180e476fd82c0b.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值