【发布时间】:2020-11-06 20:53:00
【问题描述】:
我有一堆 2D 图像。 让我们说下面是这个卷的尺寸。
深度(图像数量) - 100
宽度(X 轴像素) - 200
高度(Y 轴像素) - 200
我想旋转这个体积并以此创建位图。我正在使用C# 来实现这一点。
这是我所做的:
List<short[]> volumebuffer = new List<short[]>(noImages);
for (int img = 0; imge<noImages; img++)
{
short[] tmpArray = new short[ImgTotalHeight * ImgTotalWidth];
int index = 0;
for (int aHeight = 0; aHeight<ImgTotalHeight; aHeight++)
{
for (int aWidth = 0; aWidth<ImgTotalWidth; aWidth++)
{
tmpArray[index++] = image[aWidth + aHeight * ImgTotalWidth];
}
}
#append this tmpArray to a List<>
vomumebuffer.Add(tmpArray);
}
在上面的代码中,volumebuffer 将包含所有图像的所有像素值。我正在将每个图像的每个短数组转换为字节数组并从中创建位图。
现在我想旋转这个卷并从中创建位图。我只想创建 90 度方向。
我试图读取不同轴的像素值。 就像在 Width-> Depth -> Height order 等中读取像素值一样。
但是对于每个方向,这将需要许多 for 循环。
有没有更好的方法来实现体积的方向?
请帮助我了解如何在不同方向上将此卷旋转 90 度。
提前致谢。
【问题讨论】:
-
你试过什么?你做了什么研究?你用什么数据结构来表示体积?你想要 90 度旋转还是任意旋转?见stackoverflow.com/help/how-to-ask
-
@JonasH - 抱歉解释模糊。我通过提供大量信息来编辑问题。
标签: c# arrays image 3d rotation