在计算机视觉和图像处理的任务中,图像的预处理步骤往往是非常重要的一环。灰度化和二值化是两种常见的图像处理操作,它们能够帮助我们将彩色图像转化为更简洁的形式,进而方便后续的处理或分析。
本篇文章将带您了解如何使用 Python 实现彩色图像的 灰度化 和 二值化,并给出相关的实现代码,帮助大家更好地理解图像处理的基本原理。
1. 图像灰度化
灰度化是将彩色图像转化为灰度图像的过程。彩色图像通常包含红色、绿色和蓝色三个颜色通道(RGB),每个通道的值决定了每个像素的颜色。而灰度图像只有一个亮度值,表示像素的明暗程度。在代码实现中,我们首先读取一张彩色图像 。然后,通过将每个像素的 RGB 值按一定的权重进行加权平均,计算出每个像素的灰度值。常见的加权公式如下:Gray=0.11×R+0.59×G+0.3×B,其中,R、G、B 分别是红、绿、蓝三色通道的值。我们使用 OpenCV 库读取图像,首先获取图像的高和宽,然后创建一个与原图像大小相同的灰度图像,并逐个像素进行灰度转换。
代码示例:
from skimage.color import rgb2gray
import numpy as np
import matplotlib.pyplot as plt
import cv2
# 灰度化
img = cv2.imread("lenna.png")
h,w = img.shape[:2]
img_gray = np.zeros([h