ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python+opencv阈值

2019-12-30 17:00:58  阅读:299  来源: 互联网

标签:gray img 阈值 python cv2 opencv THRESH 127 255


在opencv中提供了阈值操作,给定阈值进行分割图像

import cv2
import numpy as np 
import matplotlib.pyplot as plt

img_gray=cv2.imread("c:\\Users\\Administrator\\Desktop\\123\\cat2.jpg",cv2.IMREAD_GRAYSCALE)

#>127--->255    <127----->0
ret, thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
#thresh1的反转
ret, thresh2 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV)
#截断值 >127---变为等于255
ret, thresh3 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TRUNC)
#大于127不变,小于等于127变为0---to zero
ret, thresh4 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO)
#thresh4的反转
ret, thresh5 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO_INV)

titles = ['original', 'binary','binaty_inv','trunc','tozero','tozero_inv']
images = [img_cat2,thresh1,thresh2,thresh3,thresh4,thresh5]

for i in range(6):
    plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
    plt.title(titles[i])
    plt.xticks([]),plt.yticks([])
plt.show()

上图为读灰度图得到的结果,下图为读原图得到的结果。

 

 

 

 上面给了五种方式,上图第一个为原图。改变 cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV)的参数可得到不同的结果

1、cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY):像素值大于127的值变为255,小于127的变为0。

2、cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY_INV):与1正好相反。

3、ret, thresh3 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TRUNC):像数值大于127变为255,小于127变为不变。

4、ret, thresh4 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO):像数值大于127不变,小于127变为0。

5、ret, thresh5 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_TOZERO_INV):与4相反,像数值大于127变为0,小于127不变。

标签:gray,img,阈值,python,cv2,opencv,THRESH,127,255
来源: https://www.cnblogs.com/oldhuang/p/12120600.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有