# код выглядит следующим образом, но результат, возможно, неправильный, это не оттенки серого, которые я хотел, кто-то поможет мне с этим, это кажется довольно простым, но я просто не знаю, что неправильно
import cv2 import matplotlib.pyplot как plt import numpy как np import matplotlib.image как mpimg img = cv2.imread('calibration_test.png')
# i want simply convert the rgb image to grayscale and then print it out
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(gray)
print(gray.shape)
# but the outcome is a colorful image
Преобразование в оттенках серого было выполнено правильно. Проблема заключается в том, как вы показываете изображение. Попробуй это:
plt.imshow(gray, cmap='gray')
По умолчанию imshow
добавляет собственный цветной ключ к одноканальным изображениям, чтобы упростить просмотр. Типичным примером являются теплые изображения, которые обычно показывают синий и красный цвета, но все цвета зависят только от одного канала.
Надеюсь это поможет!