【发布时间】:2016-10-18 12:30:45
【问题描述】:
我使用的是相机制造商提供的 C# SDK。他们有一个方法:
CaptureImage(struct ExpSettings, ref ushort[] pixelbuffer)
我希望将一维数组像素缓冲区重塑为二维数组。
现在我正在使用Buffer.BlockCopy,正如 Jon Skeet 在 SO 上的一个类似问题中所建议的那样。
但是我在想是否有一种方法(在 C# 中)无需复制实际数据就可以做到这一点。在 C 语言中,我猜你可以使用联合。
你能以某种方式创建一个数组UInt16[,] My2DImageData = new UInt[1000, 1000],然后将数据数组“指向”上面的像素缓冲区吗?
感谢您的宝贵时间。 亲切的问候/亨利克
【问题讨论】:
-
为什么要它是一个二维数组?从编程的角度来看似乎不合逻辑。宽度/高度足以计算数组内的偏移量。
(offset = (y * width) + x) -
@JeroenvanLangen 是的,你是对的,这是一个选项。我以前主要使用 MatLab,所以在进行图像处理时我更喜欢 MyImage(y, x) 表示法:-)