如何将输入图像转换为 3D 图像格式
How to convert input image to 3D image format
我正在尝试用 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]
访问它了。
这样的转换是否违反了严格的别名规则,这是一个问题。
我正在尝试用 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]
访问它了。
这样的转换是否违反了严格的别名规则,这是一个问题。