opencv二值化(opencv二值化图像边缘提取)
简介:
二值化是数字图像处理中的一种常用技术,在opencv中提供了二值化的函数。本文将详细介绍opencv中二值化函数的使用及原理。
一级标题-二值化函数:
在opencv中,可以使用cv2.threshold()函数来进行二值化处理。它的参数包括:原图像、设定的阈值、最大值、二值化类型等。
代码实现可以如下:
```
import cv2
img = cv2.imread('test.jpg',0)
ret,thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
```
其中,img为输入图像,’0’表示以灰度方式读入;ret为返回值,即阈值;thresh1为处理后的二值图像。
二级标题-二值化原理:
二值化操作是将一张图像转化为只有两个值的图像,即黑白图像。二值化的原理是将像素点的亮度信息拆分,根据预先设置的阈值,将亮度高于阈值的点设置成新的值(如255,白色),亮度低于阈值的点设置为另外一个值(如0,黑色),从而实现二值化。
三级标题-二值化的类型:
在进行二值化操作时,还可以选择二值化的类型。常用的有以下几种:
1. cv2.THRESH_BINARY:在阈值内的像素值全部设置为最大值,阈值外全部设置为0。
2. cv2.THRESH_BINARY_INV:在阈值内的像素值全部设置为0,阈值外全部设置为最大值。
3. cv2.THRESH_TRUNC:在阈值内的像素值不变,阈值外全部设置为最大值。
4. cv2.THRESH_TOZERO:在阈值内的像素值不变,阈值外全部设置为0。
5. cv2.THRESH_TOZERO_INV:在阈值内的像素值全部设置为0,阈值外不变。
本文举例,展示了cv2.THRESH_BINARY的应用。
四级标题-二值化实例:
下面是一个简单的实例:将一张彩色图片(test.jpg)进行二值化,输出灰度图像和二值化图像。
```
import cv2
import numpy as np
img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
cv2.imshow('gray',gray)
cv2.imshow('thresh',thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在输出的结果中,灰度图像和二值化图像已经展示出来了。
五级标题-总结:
本文介绍了opencv中二值化的函数及原理,展示了cv2.THRESH_BINARY的应用实例。通过本文,读者将了解到如何使用cv2.threshold函数,以及如何调整二值化的参数来得到最优的结果。