我的相机给了我14bit灰度图像,但API的函数返回一个long *到图像数据。 (所以我假设每个像素4字节)复制一个14bit灰度图像(保存在long []中)到一个pictureBox
我的应用程序是用C++/CLI编写的,而pictureBox是.NET类型的。
我目前使用的BitmapData.LockBits()
机制来获得指针访问到的图像数据,并使用
memcpy(bmpData.Scan0.ToPointer(), imageData, sizeof(long)*height*width)
的图像数据复制到该位图。
现在,唯一可用的PixelFormat是32位RGB,并且图像以等高线显示为蓝色阴影。
尝试将位图初始化为16bppGrayscale不起作用。
我想理想地将数组从长转换为单词并使用16位格式(希望14位数据将正确显示),但我不确定这是否可行。 此外,我不想迭代图像数据,所以找到最小/最大值,然后直方图拉伸到[0..255]不是我的选项(显示必须尽可能高效)
谢谢
我在14位阵列上做IP,我只需要显示摄像机图像,这样我知道系统已经正常工作。 明智的实施 - 从你的建议(两个选项)我仍然需要迭代整个图像..对吧?对于选项A,我将SR加6,然后将此值复制到R&G,对于第二我将不得不在图像上执行映射。 – Itsik 2010-05-17 13:55:17
是的,映射每个单独的像素将是必需的。 – 2010-05-17 14:01:42
也许我只能更改位图中的ColorPalette?关于图书馆,我有IPP,但不知道它的任何功能是否可以帮助我。 – Itsik 2010-05-17 14:11:26