二值化的cv2.threshold函数
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
像素高于阈值时,给像素赋予新值,否则,赋予另外一种颜色。函数是cv2.threshold()
cv2.threshold(src,thresh,maxval,type[,dst])->retval,dst
作用:用于获取二元值的灰度图像
thresh:阈值,maxval:在二元阈值THRESH_BINARY和逆二元阈值THRESH_BINARY_INV中使用的最大值
返回值retval其实就是阈值
输出结果:
2. C++标准模板库从入门到精通
3.跟老菜鸟学C++
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 cv2import matplotlib.pyplot as pltimg = 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()
输出结果:
可见使用这个函数可以获取轮廓图案。