OpenCV Python 如何将彩色图像转换为二进制图像?

OpenCV Python 如何将彩色图像转换为二进制图像?

我们使用 cv2.threshold() 将灰度图像转换为二进制图像。要将彩色图像转换为二进制图像,我们首先使用 cv2.cvtColor() 将彩色图像转换为灰度图像,然后对灰度图像应用 cv2.threshold()

步骤

可以按照以下步骤将彩色图像转换为二进制图像-

  • 导入所需库。在接下来的所有示例中,所需的 Python 库是 OpenCV 。确保您已经安装它。

  • 使用 cv2.imread() 读取输入图像。使用此方法读取的 RGB 图像为 BGR 格式。可选择将读取的BGR图像分配给img。

  • 现在使用以下方法将此BGR图像转换为灰度图像,如下所示,使用 cv2.cvtColor() 函数。可选择将转换后的灰度图像分配给gray。

  • 对灰度图像gray应用阈值处理 cv2.threshold() 将其转换为二进制图像。调整第二个参数( threshValue )以获得更好的二进制图像。

  • 显示转换后的二进制图像。

让我们看一些例子,以便更清楚地理解问题。

我们将使用以下图像作为 输入文件

OpenCV Python 如何将彩色图像转换为二进制图像?

示例

在此Python程序中,我们将彩色图像转换为二进制图像。我们还会显示二进制图像。

    # 导入所需库
    import cv2

    # 加载输入图像
    img = cv2.imread('architecture1.jpg')

    # 将输入图像转换为灰度图像
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # 应用阈值处理将灰度图像转换为二进制图像
    ret,thresh = cv2.threshold(gray,70,255,0)

    # 显示二进制图像
    cv2.imshow("Binary Image", thresh)
    cv2.waitKey(0)
    cv2.destroyAllWindows(

输出

运行上述程序时,将产生以下输出窗口,显示二进制图像。

OpenCV Python 如何将彩色图像转换为二进制图像?

示例

在此示例中,我们将彩色图像转换为二进制图像。我们还会显示原始、灰度和二进制图像。

# 导入所需库
import cv2
import matplotlib.pyplot as plt

# 加载输入图像
img = cv2.imread('architecture1.jpg')

# 将输入图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 应用阈值处理将灰度图像转换为二进制图像
ret,thresh = cv2.threshold(gray,70,255,0)

# 将BGR转换为RGB以使用matplotlib进行显示
imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# 显示原始、灰度和二进制图像
plt.subplot(131),plt.imshow(imgRGB,cmap = 'gray'),plt.title('原始图像'), plt.axis('off')
plt.subplot(132),plt.imshow(gray,cmap = 'gray'),plt.title('灰度图像'),plt.axis('off')
plt.subplot(133),plt.imshow(thresh,cmap = 'gray'),plt.title('二进制图像'),plt.axis('off')
plt.show()

输出

运行上述程序后,将产生以下输出窗口,显示原始、灰度和二进制图像。

OpenCV Python 如何将彩色图像转换为二进制图像?

注意灰度图像和二进制图像之间的差别。二进制图像只有两种颜色:白色和黑色。二进制图像的像素值为0(黑色)或255(白色)。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python OpenCV