微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将输入图像转换为 3D 图像格式

如何解决如何将输入图像转换为 3D 图像格式

我正在尝试用 C 编写图像旋转代码

 int width,height,channels;
 unsigned char *img = stbi_load("butterfly.jpg",&width,&height,&channels,0);
    

我正在阅读所看到的图像。我想将这些图像数据转换为 3D(行、列、通道)数组格式以便能够执行此行:

if (Xprime >= 1 && Yprime >= 1 && Xprime <= height && Yprime <= width)
            {
                pixel = img[Xprime][Yprime];
        }
        returnedOutimage[i][j] = pixel;
    }

解决方法

您可以将其转换为 VLA。 我假设像素按 y 排序,然后按 x 排序,最后按通道排序。

unsigned char (*img3d)[width][channels] = (void*)img;

现在您可以通过 img3[y][x][c] 访问它。

有个问题是这样的转换是否违反了严格的别名规则。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。