用C++RGB值绘制直方图

Plotting a histogram with C++ RGB Values

本文关键字:直方图 绘制 C++RGB      更新时间:2023-10-16

我已经得到了图片中每个像素的RGB值,现在我想做的是基于RGB绘制直方图。因此,根据像素值,将有3条线(蓝色、绿色、红色)上下移动。但尽管如此,我不知道如何找到一种方法。有什么指导我可以利用吗?非常感谢。

p.S:我使用的是C++项目应用程序,而不是C++控制台应用程序。

编辑:我正在使用Microsoft Visual Studio 2010

编辑:我尝试绘制X轴和Y轴。

我知道Y可以保持不变,但在X轴上,X轴必须在Y轴上显示RGB值。有什么办法绕过它吗?

对不起,如果我听起来很困惑,希望你明白我的意思。

函数MoveToLineTo用于在Windows中绘制线条,通常用于响应WM_PAINT消息。在调用DC之前,请在DC中选择合适颜色的笔。

您需要将直方图值缩放到Y比例。选择最大Y值,并对每个直方图值使用y = histogram[x] * height / maxY

从你的问题中我可以理解,你是这类任务的初学者。在这种情况下,我向我们推荐一些第三方GUI库,它为您完成了大部分工作。最好的选择可能是诺基亚的Qt(提供Visual Studio插件)和基于Qt的名为QWT的免费库,该库非常适合绘制直方图、声谱图和许多其他技术绘图。至少你可以浏览源代码,并启发自己如何以自己的方式完成它。

当然,您可以通过使用本机Windowsneneneba API(GDI+)来做到这一点,但这真的很痛苦。