我想要一个矩阵,每行对应一个像素,每列是来自PPM P3图像的R G B值。如何将PPM(P3)图像中的像素数据读入C中的Matrix?
我试图用[imageWidth * imageHeight] [3]创建一个Matrix,然后填充它的大小,但它似乎是永远占用的。我想我错过了一些东西,任何人都可以解释我出错的地方,或者建议一个更好的方法来做到这一点?
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函数读入的行。
你永远不更新'行',所以你只是在重复扫描相同的值。 – jwodder
哎呀,我错过了我的外线while循环,更新线。 –
为什么要将r,g,b组件放在图像的不同*行*上,这是一个谜。为什么'for(column = 0; column <(imageSize); column ++)'为你读的每一行循环,这将会很慢。我建议你写一个你想要发生什么的流程图 - 即使这是纸上的非正式伪代码。 –