使用C ++ RGB值绘制直方图

时间:2012-01-23 00:37:15

标签: c++ image graph pixel histogram

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

P.S:我使用的是C ++ Project Application,而不是C ++ Console Application。

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我从你的问题中可以理解你是这类任务的初学者。在这种情况下,我建议您使用一些第三方GUI库,它可以为您完成大部分工作。最好的选择可能是Qt by Nokia(Visual Studio加载项可用)和基于Qt的名为QWT的免费库,它非常适合绘制直方图,光谱图和许多其他技术绘图。至少你可以浏览源代码并激发自己如何以自己的方式去做。

当然你可以通过使用原生Windows API(GDI+)来实现,但实在是太痛苦了。