gpt4 book ai didi

c - 图像转换 - 无法从另一个结构中访问元素

转载 作者:行者123 更新时间:2023-11-30 17:31:14 25 4
gpt4 key购买 nike

我正在编写一个程序来根据我的教授提供的模板来操作图像.PPM。该模板具有以下结构:

typedef struct {
unsigned char gray;
} PPMGrayPixel;

typedef struct {
int x, y;
PPMGrayPixel *data;
} PPMGrayImage;

我正在尝试将常规 .ppm 转换为灰度 .ppm。实际上,在这种情况下,我已经有一个与原始图像大小相同的空灰度图像。该灰度文件只有一个颜色 channel (原始文件有三个)。我对转换公式没问题,但我认为在尝试访问灰度文件的元素时我遗漏了一些东西。

我并不担心设置正确的数字,我现在只想设置黑色和白色的值。我想确保我正在访问正确的像素。

这是我的代码:

PPMGrayImage * ConvertToGrayFromColorImage(PPMImage *img) {

PPMGrayImage *img2;
img2 = CreateEmptyGrayImageFromColorImage(img);


for (int i=0; i < img2->x*img2->y; i++) {

if (i % 2 == 0) {
img2.data[i].gray = 0;
}
else {
// sign 1
}
}

我是否遗漏了问题逻辑或语法中的某些内容?

最佳答案

img2.data[i].gray = 0;

img2 是一个指向结构体的指针,因此您无法直接访问其成员。你必须写:

(*img2).data[i].gray = 0;

或者:

img2->data[i].gray = 0;

关于c - 图像转换 - 无法从另一个结构中访问元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24727808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com