C 如何将输入图像转换为三维图像格式

C 如何将输入图像转换为三维图像格式,c,image-processing,matrix,rotation,C,Image Processing,Matrix,Rotation,我正在尝试用C编写图像旋转代码 int width, height, channels; unsigned char *img = stbi_load("butterfly.jpg", &width, &height, &channels, 0); 我正在阅读所看到的图像。我想将这些图像数据转换为3D(行、列、通道)阵列格式,以便能够执行以下操作: if (Xprime >= 1 && Yprime >= 1

我正在尝试用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;
    }
如果(Xprime>=1&&Yprime>=1&&Xprime您可以将其转换为VLA。
我假设像素是按y排序的,然后是按x排序的,最后是按通道排序的

unsigned char (*img3d)[width][channels] = (void*)img;
现在您可以通过
img3[y][x][c]
访问它

这样的强制转换是否违反了严格的别名规则,这是一个问题