C# 比较图像中的两种颜色+;哪一个是绘制三维点的最佳方法

C# 比较图像中的两种颜色+;哪一个是绘制三维点的最佳方法,c#,colors,3d,compare,point,C#,Colors,3d,Compare,Point,我知道使用 GetPixel() 但是有没有可能让sw决定哪一个比另一个亮还是暗 我将使用depthMap图像&我想比较像素的颜色。 在那之后,我将为每个像素创建一个3D点,这取决于它的颜色范围,如果它是光,它将位于前面等等 还有,绘制3d点最简单、最快、最好的方法是什么:OpenGl还是WPF?!还是别的建议 使用RGB值计算亮度有多种方法。至于点图-这取决于您的性能要求。关于每帧需要绘制多少点。因此,WPF的显示速度可能足以满足您的需要。最简单的解决方案可能是WPF,其级别较高,因此速度较慢

我知道使用

GetPixel()

但是有没有可能让sw决定哪一个比另一个亮还是暗

我将使用depthMap图像&我想比较像素的颜色。 在那之后,我将为每个像素创建一个3D点,这取决于它的颜色范围,如果它是光,它将位于前面等等



还有,绘制3d点最简单、最快、最好的方法是什么:OpenGl还是WPF?!还是别的建议

使用RGB值计算亮度有多种方法。至于点图-这取决于您的性能要求。关于每帧需要绘制多少点。因此,WPF的显示速度可能足以满足您的需要。最简单的解决方案可能是WPF,其级别较高,因此速度较慢。如果速度不够快,您可以选择低级别的API,甚至是一个层。OpenGL和DirectX更接近硬件。在这个层次上,没有点这样的东西。图形设备使用多边形和纹理操作,因此您可能需要创建1x1像素纹理来表示您的点,创建四边形并将此纹理映射到四边形。绘制点非常复杂。

使用RGB值计算亮度有很多方法。至于点图-这取决于您的性能要求。关于每帧需要绘制多少点。因此,WPF的显示速度可能足以满足您的需要。最简单的解决方案可能是WPF,其级别较高,因此速度较慢。如果速度不够快,您可以选择低级别的API,甚至是一个层。OpenGL和DirectX更接近硬件。在这个层次上,没有点这样的东西。图形设备使用多边形和纹理操作,因此您可能需要创建1x1像素纹理来表示您的点,创建四边形并将此纹理映射到四边形。绘制点非常复杂。

您可以将RGB转换为另一个颜色空间,如HSV,以比较颜色的亮度。
bool firstDarkerOrSame=first.GetBrightness()对于3D点,这与问题的第一部分有关吗?你在使用什么框架,你想做什么?这将决定在3D空间中绘制点的最简单、最快和最好的方法。@Jordan Trudgett,Edited@Ahmed克莱姆。。工作,谢谢:)您可以将RGB转换为另一个颜色空间,如HSV,以比较颜色的亮度。
bool firstDarkorSame=first.GetBrightness()对于3D点,这与问题的第一部分有关吗?你在使用什么框架,你想做什么?这将决定在3D空间中绘制点的最简单、最快和最好的方法。@Jordan Trudgett,Edited@Ahmed克莱姆。。工作,谢谢:)我将根据其贴图深度将图像表示为点。我对OpenGL和DirectX没有什么好的背景。此外,我需要尽快完成这个想法:)你到底需要如何处理你的形象?您真的需要绘制单独的像素还是可以在单个方法调用中创建和绘制预先计算的位图?我想将其表示为三维空间中的三维点。我有它的图像和深度图。我想比较深度贴图像素。如果它有较浅的颜色,它将代表在第三维的前面,在深白的远和其他范围之间的白色-让-和黑色将在它们之间的中间取决于它们的颜色。对于3D可视化,DirectX/OpenGL是一个很好的选择。我也做了类似的事情,但使用立方体来表示点。那么我可以快速学习DirectX或OpenGL哪一个呢感谢链接:)我将根据地图深度将图像表示为点。我对OpenGL和DirectX没有什么好的背景。此外,我需要尽快完成这个想法:)你到底需要如何处理你的形象?您真的需要绘制单独的像素还是可以在单个方法调用中创建和绘制预先计算的位图?我想将其表示为三维空间中的三维点。我有它的图像和深度图。我想比较深度贴图像素。如果它有较浅的颜色,它将代表在第三维的前面,在深白的远和其他范围之间的白色-让-和黑色将在它们之间的中间取决于它们的颜色。对于3D可视化,DirectX/OpenGL是一个很好的选择。我也做了类似的事情,但使用立方体来表示点。那么我可以快速学习DirectX或OpenGL哪一个呢非常感谢链接:)