我有一個包含無數個無符號字符三元組行的txt文件。數據來自OpenCV BGR圖片,所以每個字節的三倍是BGR顏色值。fgets/scanf讀取文件不給出任何值
當我嘗試讀取文件時,我正在用fgets()讀取的行在圖像文件的三分之一之後爲空。 繼承人我的代碼:
FILE* DS;
DS = fopen("Data.txt", "r");
char line[100];
for (int x=0; x<image->width; x++)
{
for (int y=0; y<image->height; y++)
{
fgets(line, 10, DS);
sscanf(line, "%c %c %c", &FrontTexture->imageData[FrontTexture->widthStep * y + x * 3 + 0],
&FrontTexture->imageData[FrontTexture->widthStep * y + x * 3 + 1],
&FrontTexture->imageData[FrontTexture->widthStep * y + x * 3 + 2]);
}
}
fclose(DS);
我敢肯定,線條充滿了三個人物,因爲我走進了文件,看着行X * Y。不過,在文件的三分之一後,我的行中只有一個空白字符。
希望清楚。 在此先感謝。
編輯:
txt文件的一部分:
Z a `
Y^a
Z ` a
Y^a
Y _ `
Z ` a
Y a `
Z b a
V c a
X b a
V c a
V c a
V c a
V c a
T c a
T c a
S c a
S c a
R b `
R b `
U b `
W a `
W a `
Y a `
Z b a
[ b a
Z b a
[ c b
Y c b
Y c b
這被寫入文件:
for (int x=0; x<image->width; x++)
{
for (int y=0; y<image->height; y++)
{
fprintf(DS, "%c %c %c\n", FrontTexture->imageData[FrontTexture->widthStep * y + x * 3 + 0],
FrontTexture->imageData[FrontTexture->widthStep * y + x * 3 + 1],
FrontTexture->imageData[FrontTexture->widthStep * y + x * 3 + 2]);
}
}
EDIT2:
這裏是我的文本文件: http://www.2shared.com/document/SmLbhYzH/Datensatz.html 尺寸:6,15mb
EDIT3 我OpenCV的圖像的圖像數據僅僅是一個字符數組應該充滿B0 G0 R0 B1 G1 R1 ...定義如下
: 的char *爲imageData;
只是檢查我是否理解正確 - 該文件具有'x * y'行,並且每行都有三個數字? – SingerOfTheFall
這實際上是C++嗎?如果不是,可能會失去標籤!不要以爲你想分享寬度和高度的值,並把Data.txt的內容扔到我們可以看到的地方? – Rook
您確定此文件具有三元組作爲文本,而不是二進制值嗎?因爲您正在閱讀它們,就好像它們是文本一樣...... – rodrigo