Добрый день всем. Во-первых, я хотел бы извиниться за мой код - я настоящий новичок в C. Моя проблема в том, что - мне дан ppm-файл, и мне нужно будет хранить значения оттуда в массив. Я уже сохранил высоту, ширину и максимальное значение цвета, теперь моя идея сохранить значения будет такой, как показано на картинке, умножая на три, потому что она находится в формате R G B. спасибо за вашу помощь и, пожалуйста, рассмотривать тот факт, я настоящий новичок в C.изображение свертки из файла ppm
#include <stdio.h>
int main(int argc, char** argv) {
int i = 0;
int j = 0;
FILE *fp;
fp = fopen(argv[1], "r");
printf(" %s ", argv[1]);
printf("\n");
int firstLine[2];
int width;
int next;
int enter;
int loop;
int height;
int max_color;
int pix[width][height];
int mask[3][3] = {// inicializting our given mask
{0, -1, 0},
{-1, 5, -1},
{0, -1, 0}
};
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", mask[i][j]);
}
printf("\n");
}
fscanf(fp, "%s", &firstLine);
fscanf(fp, "%d", &height);
fscanf(fp, "%d", &width);
fscanf(fp, "%d", &max_color);
printf("%p", firstLine);
printf("\n");
printf("%d ", width);
printf("\n");
printf("%d", height);
printf("\n");
printf("%d", max_color);
printf("\n");
for (i = 0; i < width * 3; i++) {
for (j = 0; j < height * 3; j++) {
loop = fscanf(fp, "%d", &enter);
pix[i][j] = enter;
printf("%d ", enter);
}
}
// fclose(fp);
return (EXIT_SUCCESS);
}
, пожалуйста, не используйте изображения для обмена кодом! :) скопируйте и вставьте его сюда или пастебин. – fluter
Извините, я новичок здесь, поэтому я сделал прямо сейчас. Спасибо – user118331
Не уверен, что вам сказали взять 8-битные образцы R, G и B, но технически вы должны проверить, что значение «MAX_INTENSITY» равно 255, прежде чем предположить, что, если оно превышает 255 (скорее всего, равно 65535) вы должны читать 16-битные образцы. –