数字图像处理:灰度化

1063 字丨阅读本文需 4 分钟

你有没有想过图像编辑软件中的方法是如何改变图像外观的?或者你是否正在寻找一种可用于灰度图像的简单方法?

本文将重点介绍数字图像处理的基础知识,并介绍一种 Python 中可用于对图像进行灰度化的方法。

什么是数字图像处理?

数字图像处理是指使用数字计算机处理图像。

例如,数字图像处理可用于改变图像的亮度或对比度,或扫描图像以查找特定图案,例如面部或物体。数字图像由包含表示图像强度的数字的像素组成。

例如,图 1 显示了一个表示图像中数据的表格。y 的长度取决于图像的高度,x 的长度取决于图像的宽度。用于指定强度的数字范围取决于它可以存储的位数,8 位图像可以存储 256 种颜色,而 1 位图像可以存储 2 种颜色。

什么是灰度图像?

灰度图像是由灰度阴影组成的图像。它可以存储 8 位,强度是黑白之间的对比。图 2 显示了将图像转换为灰度的示例。

图 2:从原始版本到灰度版本的转换的可视化。

程序

1. 循环图像的高度和宽度。

2. 通过光度法计算每个像素的强度:

   强度 = 0.299×r + 0.587×g + 0.114×b

3. 将像素设置为新的强度。

Python 方法

def rgb_to_grayscale(image):

for y in range(image.shape[0]):

  for x in range(image.shape[1]):

    value = (0.299 * image[y, x, 0]) + (0.587 * image[y, x, 1]) + (0.114 * image[y, x, 2])

    image[y, x] = value

代码说明

· def rgb_to_grayscale(image):定义了一个接受名为 image 的参数的方法。

· for y in range(image.shape[0]):循环图像的高度

· for x in range(image.shape[1]):循环图像的宽度

· value = (0.299*image[y,x,0])+(0.587*image[y,x,1])+(0.114*image[y,x,2])计算新的强度

· image[y, x] = value将像素设置为新的强度

如何使用方法

有很多方法可以将图像加载到 Python 中,下面的示例使用 OpenCV。

要导入 OpenCV,必须安装 OpenCV-Python库。在终端中输入以下命令来安装库:

$ pip install opencv-python

OpenCV 是一个用于计算机视觉和机器学习的库,因此它也可以用于对图像进行灰度化,但由于本文关注的是用于灰度化的实际方法,因此该库仅用于加载、调整大小和显示图像。

import cv2

def rgb_to_grayscale(image):

# ...

# Use cv2 to load and resize an image

image = cv2.imread("<path-to-image.png>")

image = cv2.resize(image, (256, 256), interpolation = cv2.INTER_AREA)

image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# Convert the image to grayscale

rgb_to_grayscale(image)

# Show image

cv2.imshow(image)

代码说明

· import cv2:导入 OpenCV

· image = cv2.imread("<path-to-image.png">):将图像加载为 BGR

· image = cv2.resize(image, (256, 256), interpolation = cv2.INTER_AREA):调整图像大小

· image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB):将图像从 BGR 转换为 RGB

· rgb_to_grayscale(image):使用前面定义的灰度方法对图像进行灰度化

· cv2.imshow(image):显示图像总结

数字图像处理用于处理图像,例如,扫描对象或实现不同类型的过滤器。图像可以存储的位数指定了它可以显示的颜色数。灰度图像是转换为灰度的图像。亮度方法可用于对图像进行灰度化。OpenCV 可用于加载、调整大小和转换图像的色彩空间,以及许多其他与图像处理相关的操作。

参考

En.wikipedia.org. 2022a. Grayscale — Wikipedia. [online] Available at: <https://en.wikipedia.org/wiki/Grayscale> [Accessed 23 April 2022].

En.wikipedia.org. 2022b. Digital image processing — Wikipedia. [online] Available at: <https://en.wikipedia.org/wiki/Digital_image_processing> [Accessed 23 April 2022].

En.wikipedia.org. 2022c. Digital image — Wikipedia. [online] Available at: <https://en.wikipedia.org/wiki/Digital_image> [Accessed 24 April 2022].

En.wikipedia.org. 2022d. Color depth — Wikipedia. [online] Available at: <https://en.wikipedia.org/wiki/Color_depth> [Accessed 24 April 2022].

Opencv.org. 2022. About — OpenCV. [online] Available at: <https://opencv.org/about/> [Accessed 24 April 2022].

免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处本网。非本网作品均来自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如您发现有任何侵权内容,请依照下方联系方式进行沟通,我们将第一时间进行处理。

0赞 好资讯,需要你的鼓励
来自:磐创AI
0

参与评论

登录后参与讨论 0/1000

为你推荐

加载中...