我有一个包含多行无符号字符三元组的 txt 文件。数据来自 OpenCV BGR 图片,因此每个字节三元组都是一个 BGR 颜色值。
当我尝试读取文件时,我用 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]);
}
}
编辑2:
这是我的文本文件: http ://www.2shared.com/document/SmLbhYzH/Datensatz.html 大小:6,15mb
EDIT3 我的 OpenCV 图像的图像数据只是一个字符数组,应该用 b0 g0 r0 b1 g1 r1 ...
定义如下: char *imageData;