opencv二值化(opencv二值化图像边缘提取)

[img]

简介:

二值化是数字图像处理中的一种常用技术,在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函数,以及如何调整二值化的参数来得到最优的结果。

标签列表