Чтобы преобразовать изображение в оттенки серого с помощью OpenCV, существует несколько методов. Вот некоторые из наиболее часто используемых:
Метод 1: использование cv2.cvtColor()
import cv2
# Load the image
image = cv2.imread("input_image.jpg")
# Convert the image to grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Save the grayscale image
cv2.imwrite("output_image.jpg", gray_image)
Метод 2: использование cv2.imread() с флагом IMREAD_GRAYSCALE
import cv2
# Load the image in grayscale
gray_image = cv2.imread("input_image.jpg", cv2.IMREAD_GRAYSCALE)
# Save the grayscale image
cv2.imwrite("output_image.jpg", gray_image)
Метод 3: использование PIL (библиотеки изображений Python) и NumPy
from PIL import Image
import numpy as np
# Load the image
image = Image.open("input_image.jpg")
# Convert the image to grayscale
gray_image = np.array(image.convert("L"))
# Save the grayscale image
Image.fromarray(gray_image).save("output_image.jpg")
Метод 4. Использование NumPy и средневзвешенного значения
import cv2
import numpy as np
# Load the image
image = cv2.imread("input_image.jpg")
# Convert the image to grayscale using weighted average
gray_image = np.dot(image[..., :3], [0.299, 0.587, 0.114]).astype(np.uint8)
# Save the grayscale image
cv2.imwrite("output_image.jpg", gray_image)
Метод 5. Использование scikit-image (skimage)
from skimage import io, color
# Load the image
image = io.imread("input_image.jpg")
# Convert the image to grayscale
gray_image = color.rgb2gray(image)
# Save the grayscale image
io.imsave("output_image.jpg", gray_image)