- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试读取一个 pgm 文件并将其放入一个数组中进行赋值,我将它放到可以将每一行放入一个字符串中的位置,然后我尝试对每一行进行 sscanf 以获取值,但它总是把num 中的零,不管它到底是什么。这可能与 pgm 文件每列之间有 1 或 2 个空格有关,但我不确定`
int **image = (int**) malloc(*numCols * sizeof(int*));
int i;
for(i = 0; i < *numCols; i++)
{
image[i] = (int *) malloc(*numRows * sizeof(int));
}
int r,c;
int num = 0;
char *line = (char *) malloc(*numCols * sizeof(char));
for(r = 0; r < *numRows; r++)
{
int number = (*numCols * sizeof(int));
fgets(line, number, in);
for(c = 0; c < *numCols; c++)
{
sscanf(line,"%d",&num);
printf("%d",num);
image[r][c] = num;
}
sscanf(line,"%*[\n]");
printf("\n");
}
return image;
最佳答案
PGM file不以数字开头,请使用文本编辑器打开文件以查找其格式。另一个问题是,如果你像那样使用 sscanf()
,你将只会永久读取第一个数字,也许你需要 strtok()
或者像这样:
int offset = 0, readCount;
for(c = 0; c < *numCols; c++)
{
sscanf(line + offset,"%d%n",&num, &readCount);
printf("%d",num);
image[r][c] = num;
offset += readCount;
}
关于C sscanf() 在读取 pgm 文件时返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22264495/
#include void lower_string(char*); int main() { char string[100]; printf("Enter
如何使用 Java 将二进制 PGM 文件转换为 ASCII PGM 文件? 当我使用以下代码时,我无法在 B.pgm 中写入 ASCII 值。我也尝试过使用dos.writeInt。 FileInp
我正在尝试对 pgm 执行卷积类型图像 P5 (二进制)使用以下设置: 输入输出数组 vector> image(rows, vector(cols, '\0')); vector> out(rows
我的机器上安装了 zmq 版本 4.1.3 和 pyzmq 版本 15.2.0(我假设是通过 pip 但我现在不记得了)。我需要连接到 UDP epgm 套接字,但收到错误“协议(protocol)不
我目前正在做一个学生项目,它对灰度 pgm 文件进行一些图像处理(膨胀和腐 eclipse )。我试图对图像对象实现扩张,但得到了奇怪的结果。我预计图像对象会比原始图像大。但是根据我使用的内核大小,我
以下代码适用于管理员帐户,但对于非管理员帐户,它会打印两次成功然后抛出 System.Net.Sockets.SocketException (0x80004005):尝试以其禁止的方式访问套接字访问
我需要在库 netpbm/pgm 中创建拉普拉斯运算符。处理图像很简单 - 我计算每个像素。我不使用标准化,因为我知道它是 0 并且我想简化解决方案。 我的代码: #include #include
我需要为类项目创建 PGM 图像的单个灰度直方图。我已经有了读取 PGM 图像的代码。但是我不完全理解如何计算唯一的像素值。我不需要输出图表或类似的东西。任何帮助将不胜感激! 读取PGM图像的代码 h
int i, j; for (i = (*pgm).height - 1; i >= 0; i--) for (j = 0; j < (*pgm).width; j++)
您好,我有一个关于读取 pgm 值的底部值的问题。我制作了一个 2d 动态数组,并为高度和宽度添加了 2 个额外的空格,以便能够创建缓冲区,但是当我尝试读取时将第一个整数设置为 width+1 它不起
我正在尝试自学数字图像处理。我已将我的 pgm 读入结构中。在这个结构中我有像素数组。我可以打印得很好。现在我想根据用户输入裁剪这张照片。我接受这些输入并根据输入的坐标得到一个黑色矩形。我做错了什么?
我正在尝试使用这段代码编写一个 pgm 文件.. myfile (image), (sizeRow*sizeColumn)*sizeof(unsigned char)); 如果我尝试将其写入 .txt
我有一个非常奇怪的错误, 所以我尝试通过将其像素值加载到数组中来读取 pgm 图像,我能够正确读取其版本、高度、宽度和最大可能像素值。然而,当我开始读取像素值时,我总是得到 0。(我知道它不是零,因为
我的目标是读入 PGM 图像并生成颜色值反转的图像。但是当我输入 this image ,我回来了this image .我在 C 中编程,在 Windows 7(64 位)上使用 Eclipse 和
我正在尝试从 .pgm 图像文件 (mars.pgm) 的 header 读取大小值,并使用 sscanf 将结果值分配给整数变量 u 和 v。 程序执行时在第一行打印 P5 832 700 127,
我正在尝试读取和重写 PGM 图像,但它会导致形状困惑。右图为原图,左图为重制图: 这是我正在使用的代码: #include #include #include #include using
我有一百个 128 x 128 的 .pgm 文件,上面有一些形状,我认为它们的色阶是 255(虽然不确定这个,所以如果解决方案也可以接受它会很好考虑),我需要提取这些颜色来处理图像。所以我想最终得到
我有一个包含 0-254 灰度值的 int 数组,我还有图像的 x 和 y 大小。创建 pgm 图像是一件容易的事情,但我想在 jsp 中显示它,所以我需要以某种方式将其转换为 jpeg 或 png
我已经被这个问题困扰了一段时间了。我如何将 pgm 文件中的像素值 0-255 复制到数组中?这是我到目前为止所拥有的。我知道我偏离了应有的样子。 #include #include int ma
我正在尝试将 JavaScript 中的 Canvas 转换为 pgm。在我转换文件并将其下载到我的 table 面后,它具有 pgm 扩展名,但是当我用编辑器打开它时,它被编码为 png。我认为
我是一名优秀的程序员,十分优秀!