我的相机给了我 14 位灰度图像,但 API 的函数返回一个 long* 到图像数据。(所以我假设每个像素有 4 个字节)
我的应用程序是用 C++/CLI 编写的,pictureBox 是 .NET 类型的。
我目前正在使用该BitmapData.LockBits()
机制来获得对图像数据的指针访问,并使用
memcpy(bmpData.Scan0.ToPointer(), imageData, sizeof(long)*height*width)
将图像数据复制到位图。
目前,唯一有效的 PixelFormat 是 32 位 RGB,并且图像显示为带有轮廓的蓝色阴影。
尝试将位图初始化为 16bppGrayscale 不起作用。
理想情况下,我希望将数组从 long 转换为 word 并使用 16 位格式(希望 14 位数据能够正确显示),但我不确定这是否有效。此外,我不想迭代图像数据,因此找到最小/最大值然后直方图拉伸到 [0..255] 对我来说不是一个选项(显示必须尽可能高效)
谢谢