【发布时间】:2016-04-11 11:34:30
【问题描述】:
大家下午好。 首先,我想为我的代码道歉——我是一个真正的 C 初学者。我的问题是——我得到了 ppm 文件,我需要将那里的值存储到一个数组中。我已经存储了颜色的高度、宽度和最大值,现在我存储值的想法将如图所示 - 乘以三,因为它是 R G B 格式。 谢谢你的帮助,请考虑一下我是一个真正的 C 初学者。
#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);
}
【问题讨论】:
-
请勿使用图片分享代码! :) 请将其复制并粘贴到此处或粘贴到一个 pastebin。
-
对不起,我是这里的初学者,所以我现在就这样做了。谢谢
-
不确定您是否被告知要假设 8 位 R、G 和 B 样本,但从技术上讲,您应该在假设之前检查
MAX_INTENSITY是否为 255,如果它超过 255(很可能等于 65535),您应该读取 16 位样本。 -
我在下面添加了评论...
标签: c image convolution ppm