cv2.cvtcolor bgr2gray, кажется, получить изображение ошибки

# код выглядит следующим образом, реализован, но результат, возможно, неправильный, это не та шкала серого, которую я хотел, кто-то поможет мне в этом, это кажется довольно простым, но я просто не знаю, что не так

импорт cv2 импорт matplotlib.pyplot как plt импорт numpy как np импорт matplotlib.image как mpimg img = cv2.imread('calib_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

исходное изображение, которое я использовал

ужасный результат

1 ответ

Преобразование оттенков серого было сделано правильно. Проблема в том, как вы отображаете изображение. Попробуй это:

plt.imshow(gray, cmap='gray')

По умолчанию imshow добавляет свой собственный цветовой ключ к одноканальным изображениям, чтобы его было легче просматривать. Типичным примером являются тепловые изображения, которые обычно показывают синий и красный, но все цвета зависят только от одного канала.

Надеюсь это поможет!

Другие вопросы по тегам