OpenCV Python – 如何将彩色图像转换为二进制图像?
我们使用 cv2.threshold() 将灰度图像转换为二进制图像。要将彩色图像转换为二进制图像,我们首先使用 cv2.cvtColor() 将彩色图像转换为灰度图像,然后在灰度图像上应用 cv2.threshold()。
步骤
可以按照以下给定的步骤将彩色图像转换为二进制图像-
-
导入所需的库。在以下所有示例中,所需的 Python 库是 OpenCV。确保您已经安装了它。
-
使用 cv2.imread() 读取输入图像。使用此方法读取的 RGB 图像采用 BGR 格式。(可选)将读取的 BGR 图像分配给 img。
-
现在使用 cv2.cvtColor() 函数将此 BGR 图像转换为灰度图像,如下所示。(可选)将转换后的灰度图像指定为灰度。
-
在灰度图像灰色上应用阈值 cv2.threshold() 以将其转换为二进制图像。调整第二个参数(threshValue)以获得更好的二进制图像。
-
显示转换后的二进制图像。
让我们看一些例子,以便清楚地理解这个问题。
在下面的示例中,我们将使用以下图像作为输入文件。
例
在这个 Python 程序中,我们将彩色图像转换为二进制图像。我们还显示二进制图像。
# import required libraries import cv2 # load the input image img = cv2.imread('architecture1.jpg') # convert the input image to grayscale gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # apply thresholding to convert grayscale to binary image ret,thresh = cv2.threshold(gray,70,255,0) # Display the Binary Image cv2.imshow("Binary Image", thresh) cv2.waitKey(0) cv2.destroyAllWindows()
输出
When you run the above program, it will produce the following output window showing the binary image.
例
在此示例中,我们将彩色图像转换为二进制图像。我们还显示原始图像、灰度图像和二进制图像。
# import required libraries import cv2 import matplotlib.pyplot as plt # load the input image img = cv2.imread('architecture1.jpg') # convert the input image to grayscale gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # apply thresholding to convert grayscale to binary image ret,thresh = cv2.threshold(gray,70,255,0) # convert BGR to RGB to display using matplotlib imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # display Original, Grayscale and Binary Images plt.subplot(131),plt.imshow(imgRGB,cmap = 'gray'),plt.title('Original Image'), plt.axis('off') plt.subplot(132),plt.imshow(gray,cmap = 'gray'),plt.title('Grayscale Image'),plt.axis('off') plt.subplot(133),plt.imshow(thresh,cmap = 'gray'),plt.title('Binary Image'),plt.axis('off') plt.show()
输出
当您运行上述程序时,它将产生以下输出窗口,显示原始,灰度和二进制图像。
请注意灰度图像和二进制图像之间的区别。二进制图像只有两种颜色:白色和黑色。二进制图像的像素值为 0(黑色)或 255(白色)。
相关文章
- python-opencv 图像二值化,自适应阈值处理
- Python 入门(七)函数
- Python每日一练(20230415)
- 【OpenCV-Python】cvui 之 格式化文本打印
- 如何高效学Python?
- 零基础小白应该从哪里开始学Python?一文告诉你!
- Python:利用python语言实现18位身份证号码和15位身份证号码相互转换
- Python语言学习:Python语言学习之python包/库package的简介(模块的封装/模块路径搜索/模块导入方法/自定义导入模块实现华氏-摄氏温度转换案例应用)、使用方法、管理工具之详细攻略
- Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名、合并两个不同路径下图片文件名等目录/路径案例、正确加载图片路径)之详细攻略
- python 将一个JSON 字典转换为一个Python 对象
- C++版本的OpenCV 5.x编译生成opencv-python==5.x(GPU版本)接口并进行调用
- Python小白的数学建模课-12.非线性规划
- Python: 爬虫入门-python爬虫入门教程(非常详细)
- 【python】Python实现网络爬虫demo实例
- Python - Opencv应用实例之CT图像检测边缘和内部缺陷
- python工具方法 2 利用opencv按帧提取视频中的图片
- OpenCV-Python学习(3)—— OpenCV 图像色彩空间转换(cv.cvtColor)
- Python基于OpenCV的视频车道线检测系统[源码&部署教程]
- python opencv 创建窗口,加载图片,显示图片,灰度转换,保存图片