我想要一個矩陣,每行對應一個像素,每列是來自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 ++)'爲你讀的每一行循環,這將會很慢。我建議你寫一個你想要發生什麼的流程圖 - 即使這是紙上的非正式僞代碼。 –