Python |使用 OpenCV 对图像进行灰度缩放

原文:https://www . geeksforgeeks . org/python-gray scaling-of-images-use-opencv/

灰度缩放是将图像从其他颜色空间(如 RGB、CMYK、HSV 等)转换的过程。灰色的阴影。它在全黑和全白之间变化。

灰度的重要性

  • 降维:例如,在 RGB 图像中,有三个颜色通道并具有三维,而灰度图像是一维的。
  • 降低模型复杂度:考虑在 10x10x3 像素的 RGB 图像上训练神经文章。输入层将有 300 个输入节点。另一方面,同样的神经网络对于灰度图像只需要 100 个输入节点。
  • 要让其他算法工作:许多算法被定制为只在灰度图像上工作,例如在 OpenCV 库中预先实现的 Canny 边缘检测功能只在灰度图像上工作。

让我们学习将彩色图像转换为灰度图像的不同图像处理方法。

方法 1:使用 cv2.cvtColor()函数

Python 3

# import opencv
import cv2

# Load the input image
image = cv2.imread('C:\\Documents\\full_path\\tomatoes.jpg')
cv2.imshow('Original', image)
cv2.waitKey(0)

# Use the cvtColor() function to grayscale the image
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

cv2.imshow('Grayscale', gray_image)
cv2.waitKey(0) 

# Window shown waits for any key pressing event
cv2.destroyAllWindows()

输入图像:

输出图像:

方法 2:使用标志= 0 的 cv2.imread()函数

Python 3

# Import opencv
import cv2

# Use the second argument or (flag value) zero
# that specifies the image is to be read in grayscale mode
img = cv2.imread('C:\\Documents\\full_path\\tomatoes.jpg', 0)

cv2.imshow('Grayscale Image', img)
cv2.waitKey(0)

# Window shown waits for any key pressing event
cv2.destroyAllWindows()

输出图像:

方法 3:使用像素操作(平均法)

Python 3

# Import opencv
import cv2

# Load the input image
img = cv2.imread('C:\\Documents\\full_path\\tomatoes.jpg')

# Obtain the dimensions of the image array
# using the shape method
(row, col) = img.shape[0:2]

# Take the average of pixel values of the BGR Channels
# to convert the colored image to grayscale image
for i in range(row):
    for j in range(col):
        # Find the average of the BGR pixel values
        img[i, j] = sum(img[i, j]) * 0.33

cv2.imshow('Grayscale Image', img)
cv2.waitKey(0)

# Window shown waits for any key pressing event
cv2.destroyAllWindows()

输出图像:

希望你已经理解了上面讨论的用 Python 将彩色图像转换成灰度图像的图像处理技术!