【CSharp】无符号短整型数组ushort[]转化为IntPtr

【CSharp】无符号短整型数组ushort[]转化为IntPtr

1.背景

我们的相机或者探测器是一个感光的传感器,一般将光波打到闪烁体上,闪烁体发光后进行光电转换得到电信号,您可以这么简单的去理解。
这里就设计相机传感器上的AD转换器(模拟信号->数字信号)的bit数,我手里探测器的AD转化器是16bit的即灰阶范围是65536个层次(0~65535),因为长度16位的bit最大可以表示65535;

通过SDK获得探测器获得raw原始数据,C#通过api得到是IntPtr指针,它指向ushort[]无符号短整型数组。

本博客模仿探测器硬件生成IntPtr指针(ushort*),它是指向短整型数组ushort[]的第一个元素的指针。

说明:
在 C# 中,因为 C# 不支持直接定义指向数组类型(如 ushort[])的指针,即ushort[]* 这种语法是不允许的!
C# 的指针类型只能指向具体的值类型(如 ushort, int, float 等),而不能指向数组类型或引用类型。

如果你想要操作数组的指针,你需要获取数组第一个元素的指针,并通过指针进行数组的操作。

2. 代码

创建一个ushort[]数组,并将其转换为 IntPtr (ushort*

猜你喜欢

转载自blog.csdn.net/jn10010537/article/details/139278321