C# WPF-用于16位深度灰度监视器的专用图像显示
我目前正在开发一个应用程序,将16位灰度图像显示到16位灰度兼容显示器上。 我在软件开发方面的大部分经验都是在WPF中获得的。然而,我读到,即使WPF可以接受灰度16类型的图像,它们在内部转换为32位颜色。 为了实现这一点,我一直在使用WPFDXInterop,通过基于DirectX 11的自定义控件尝试输出我想要的图像,有时还使用CUDA和OpenCV进行图像处理 我在这种情况下使用WPF是不是运气不好?我是否需要更改编码环境?C# WPF-用于16位深度灰度监视器的专用图像显示,c#,wpf,opencv,directx,C#,Wpf,Opencv,Directx,我目前正在开发一个应用程序,将16位灰度图像显示到16位灰度兼容显示器上。 我在软件开发方面的大部分经验都是在WPF中获得的。然而,我读到,即使WPF可以接受灰度16类型的图像,它们在内部转换为32位颜色。 为了实现这一点,我一直在使用WPFDXInterop,通过基于DirectX 11的自定义控件尝试输出我想要的图像,有时还使用CUDA和OpenCV进行图像处理 我在这种情况下使用WPF是不是运气不好?我是否需要更改编码环境? 能够继续使用CUDA和OpenCV进行图像处理对我来说很重要,但
能够继续使用CUDA和OpenCV进行图像处理对我来说很重要,但我可以在必要时从DirectX更改为OpenGL,并学习WPF以外的知识。通过进一步研究,我似乎可以改为UWP,并将其SwapChainPanel与DirectX rendertarget一起使用。然后使用DirectCompute进行GPU编程。当我开始编写它时,我会确定这是否是一个可行的解决方案。对此进行更多的研究,我应该能够通过“VisualLayer”将像SwapChainPanel这样的UWP控件导入WPF,正如在上所看到的,我已经实现了这方面工作解决方案的初始部分。我已经用它作为一个参考,来指导我如何实现我的目标,并取得很大的成功。我现在使用UWP的SwapChainPanel,并通过DirectX11创建自己的纹理,用于OpenCV和CUDA GPGPU方法。我也相信输出图像位深度是正确的,因为我自己正在创建交换链和设备。