📜  颜色到黑白 opencv - Python (1)

📅  最后修改于: 2023-12-03 14:58:46.984000             🧑  作者: Mango

将彩色图转换为黑白图

在计算机视觉和图像处理中,常常需要将彩色图转换为黑白图。在OpenCV中,我们可以使用cv2.cvtColor()函数轻松地完成这个任务。

1. 安装OpenCV

在使用OpenCV之前,必须先安装它。安装过程可以参考官方文档:https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html

安装完成后,我们需要在Python中导入OpenCV库:

import cv2
2. 加载图像

加载图像的方式有很多种,这里介绍其中一种。使用cv2.imread()函数可以从文件中读取图像,它的参数为文件名或路径:

img = cv2.imread('image.jpg')
3. 转换成黑白图

转换成黑白图的方式有两种:灰度图和二值图。灰度图将彩色图像的每个像素转换成一个灰度值,而二值图将图像中的像素分为黑色和白色两个值。

3.1 灰度图

在OpenCV中,将彩色图转换成灰度图非常简单,只需要调用cv2.cvtColor()函数,并将第二个参数设置为cv2.COLOR_BGR2GRAY:

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
3.2 二值图

将图像转换成二值图有很多方法,其中一种是使用阈值函数。这里介绍使用cv2.threshold()函数的方法。

# 转换成灰度图
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 阈值处理
ret, binary_img = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY)

其中,第二个参数127是阈值,所有灰度值大于等于127的像素都被标记为255(白色),而小于它的像素都被标记为0(黑色)。

4. 显示结果

最后,我们可以使用cv2.imshow()函数显示结果:

cv2.imshow('Color Image', img)
cv2.imshow('Gray Image', gray_img)
cv2.imshow('Binary Image', binary_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

其中,第一个参数为窗口名称,第二个参数为要显示的图像。cv2.waitKey()函数等待指定的毫秒数,或者等待用户按下某个键。cv2.destroyAllWindows()函数释放窗口和相关的内存空间。

完整代码:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 转换成灰度图
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 阈值处理
ret, binary_img = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY)

# 显示结果
cv2.imshow('Color Image', img)
cv2.imshow('Gray Image', gray_img)
cv2.imshow('Binary Image', binary_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

以上就是将彩色图转换成黑白图的过程。