利用Python+opencv进行简单阈值分割(附代码)

opencv中采用利用cv2.threshhold()函数进行简单阈值分割

cv2.threshhold()函数参数:

第一个参数为原图像;

第二个参数为阈值大小;

第三个参数为大于阈值时,赋值的像素值

第四个参数是阈值分割方法

阈值分割方法有五种:

cv2.THRESH_BINARY
           cv2.THRESH_BINARY_INV
           cv2.THRESH_TRUNC
           cv2.THRESH_TOZERO
           cv2.THRESH_TOZERO_INV

示例如下所示:

大于127像素值的全部赋值为255(白色)

代码如下:

# -*- coding: utf-8 -*-
import cv2
import numpy as np
from matplotlib import pyplot as plt

img=cv2.imread('4.jfif',0) #0是第二个参数,将其转为灰度图

#利用cv2.threshhold()函数进行简单阈值分割,第一个参数是待分割图像,第二个参数是阈值大小
#第三个参数是赋值的像素值,第四个参数是阈值分割方法
ret,thresh1=cv2.threshold(img,127,255,cv2.THRESH_BINARY)
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','TOZERO_INV']
images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]
for i in xrange(6):
    plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
    plt.title(titles[i])
    plt.xticks(),plt.yticks([]) #显示坐标轴,如为空,则无坐标轴
plt.show()

运行结果如下所示:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值