Мне нужна матрица с каждой строкой, соответствующей пикселю, и каждый столбец является значением R G B из изображения PPM P3.Как вы читаете данные пикселя из изображения PPM (P3) в матрицу в C?
Я попытался создать матрицу с [imageWidth * imageHeight] [3], так как размер заселен, но, похоже, навсегда. Я думаю, что что-то пропустил, может кто-нибудь объяснить, где я поступил неправильно или, возможно, предложить лучший способ сделать это?
int pixels [imageSize] [3];
while(fgets(line,70,fd) != NULL){
for (column = 0; column < (imageSize); column++){
for (row = 0; row < 1; row++){
sscanf(line, "%d %d %d", &r, &g, &b);
pixels [column] [row] = r;
pixels [column] [row + 1] = g;
pixels [column] [row + 2] = b;
}
}
}
Линия относится к строке, считываемой функцией fgets.
Вы никогда обновите 'line', так что вы просто просматриваете одни и те же значения снова и снова. – jwodder
Упс, я пропустил мой внешний цикл while, который обновляет строку. –
Это загадка, почему вы размещаете компоненты r, g, b на разных * строках * изображения. Также почему 'for (column = 0; column <(imageSize); column ++) цикл для каждой прочитанной строки, которая будет медленной. Я предлагаю написать блок-схему того, что вы хотите, - даже если это неофициальный псевдокод на бумаге. –