В большинстве случаев вы хотите избегать использования двойных циклов for
для изменения значений пикселей, поскольку они очень медленные. Лучшим подходом является использование Numpy для модификации пикселей, поскольку OpenCV использует массивы Numpy для отображения изображений. Для достижения желаемого результата вы можете использовать np.zeros
, чтобы создать полностью черное изображение той же формы, что и исходное изображение.
import cv2
import numpy as np
image = cv2.imread("test_image.png", 0)
black = np.zeros(image.shape, np.uint8)
cv2.imshow('image', image)
cv2.imshow('black', black)
cv2.waitKey(0)
Например, с тестовым изображением. Оригинал (слева), результат (справа)