Как я могу прочитать данные ppm файла с помощью stringstream и преобразовать эти ppm в оттенки серого? - PullRequest
0 голосов
/ 23 октября 2019

Я новичок в c ++ и прохожу курс обработки изображений. У меня есть задание о чтении ppm-файла и преобразовании ppm в оттенки серого. Я могу прочитать формат файла, ширину, высоту и максимальное значение (кстати, я использовал stringstream для чтения построчно), но не могу прочитать данные (пиксели) файла ppm. Если кто-нибудь может мне помочь, это было бы здорово. Как я могу прочитать данные файла ppm, используя stringstream?

bool Image::read_pnm(const std::string& filename) const{

    if (m_n_channels == 1){
        string extended_name = filename + ".ppm";
        ifstream input(extended_name.c_str(), std::ios::in | std::ios::binary);

        string line;
        getline(input,line);

        /* This is for the first line (file format or magic number)*/
        if (line != "P6" ) {
            cout << "Error has occured. Unexpected file format." << endl;
            return false;
        }
        cout << line << endl; /* prints file format line*/

        getline(input, line);

        /* This is for read the second line (comment line)*/
        while (line[0] == '#') {
            getline(input, line);
        }
        cout << line << endl; /* prints width, height and max value*/


    }
...