Я столкнулся с этой загадочной ситуацией, пытаясь избавиться от третьего измерения (измерения RGB) моих изображений, чтобы передать их в классификатор Knn для распознавания лиц.
В качестве примера я взял одно цветное изображение лица из базы данных «Помечено лицо в дикой природе». Это сохраняется локально.
Сначала я импортировал изображение, затем преобразовал его в оттенки серого, затем проверил размер (time1), затем экспортировал с помощью «imwrite», затем снова импортировал изображение в оттенках серого, затем снова проверил его размер (time2).
В (время1) размерность была 2: (250, 250). Однако в (время 2) размерность стала 3: (250, 250, 3). Почему при экспорте и импорте размер изображения в оттенках серого изменяется? Что следует указать при импорте изображения в оттенках серого, чтобы оно оставалось двухмерным?
Вот мой код Python:
import cv2
import matplotlib.pyplot as plt
imgBGR = cv2.imread("path/filename")
gray = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2GRAY)
gray.shape # this gives me (250, 250)
cv2.imwrite("path/newname", gray)
gray2 = cv2.imread("path/newname")
gray2.shape # this gives me (250, 250, 3)