OpenCV: Работа с файлом PGM. Почему мой сгенерированный файл PGM имеет 3 канала (RGB)? - PullRequest
0 голосов
/ 24 апреля 2020

Я пытался сгенерировать файл PGM с помощью OpenCV, вот как я это делаю:

ori = imread("images/apple.jpg");
cvtColor(ori, gray, COLOR_BGR2GRAY); //convert to gray    

vector<int> params;
params.push_back(IMWRITE_PXM_BINARY);
params.push_back(1); 

imwrite("images/apple1.pgm", gray, params); //because it needs gray input
pgm = imread("images/apple1.pgm");
imshow("PGM", pgm);

Я мог бы успешно сгенерировать файл PGM и отобразить его с помощью imshow. Однако я заметил, что мой файл PGM имеет 3 канала (RGB), что было неожиданно, поскольку он должен иметь только 1 канал на пиксель.

Я загрузил этот файл в GIMP и экспортировал его в формат PGM. Когда я попытался показать его в OpenCV, используя imshow, он отобразил сравнение правого канала (1 канал) из GIMP и PGM из моего кода ниже:

enter image description here

Обратите внимание в левом нижнем углу каждого изображения, номер канала. Я попытался преобразовать его в один канал с помощью этого:

pgm.convertTo(pgm, CV_8U);

Но мое изображение PGM по-прежнему состоит из 3 каналов. Любой совет, какую часть мне не хватает в моем преобразовании PGM?

...