二值化的cv2 threshold函数

Posted skiwnchh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二值化的cv2 threshold函数相关的知识,希望对你有一定的参考价值。

像素高于阈值时,给像素赋予新值,否则,赋予另外一种颜色。函数是cv2.threshold() 
cv2.threshold(src,thresh,maxval,type[,dst])->retval,dst 
作用:用于获取二元值的灰度图像 
thresh:阈值,maxval:在二元阈值THRESH_BINARY和逆二元阈值THRESH_BINARY_INV中使用的最大值 
返回值retval其实就是阈值 

type:使用的阈值类型 

例子:

 

#python 3.5.3  蔡军生    
#http://edu.csdn.net/course/detail/2592    
#

import cv2
import matplotlib.pyplot as plt

img = cv2.imread(‘test1.jpg‘,0) #直接读为灰度图像

#二值化
ret,thresh1 = cv2.threshold(img,1,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 = [‘img‘,‘BINARY‘,‘BINARY_INV‘,‘TRUNC‘,‘TOZERO‘,‘TOZERO_INV‘]
images = [img,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()

输出结果:

技术分享图片

技术分享图片

可见使用这个函数可以获取轮廓图案。

 

1. TensorFlow入门基本教程

 

2. C++标准模板库从入门到精通 

 

 

 

 

3.跟老菜鸟学C++

4. 跟老菜鸟学python

5. 在VC2015里学会使用tinyxml库

6. 在Windows下SVN的版本管理与实战 

 http://edu.csdn.net/course/detail/2579

7.Visual Studio 2015开发C++程序的基本使用 

http://edu.csdn.net/course/detail/2570

8.在VC2015里使用protobuf协议

9.在VC2015里学会使用mysql数据库

 
 

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed








以上是关于二值化的cv2 threshold函数的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV中对图像进行二值化的关键函数——cvThreshold()。

机器学习进阶-项目实战-信用卡数字识别 1.cv2.findContour(找出轮廓) 2.cv2.boudingRect(轮廓外接矩阵位置) 3.cv2.threshold(图片二值化操作) 4.c

以代码为基础的opencv-python学习 图像二值化

OpenCV的二值化处理函数threshold()详解

Halcon二值化函数汇总解析

对二值化图像的选定区域内的目标彩图的物体颜色进行识别(RGB)并输出,用opencv怎么编写源代码?