0

我正在寻找任何可以帮助我在加载的图像上生成像条纹图案的正弦波的 C++ 工具,如下所示:

样本输出

使用其他编程模式(脚本?)的任何想法也会很有用。如果需要更多信息,请告诉我。

4

2 回答 2

1

您必须更具体地了解您要查找的内容。 Magick++是ImageMagick库的 C++ 绑定,有很多工具可用于进行各种类型的图像处理,但根据您的需要,它可能会也可能不会做您想做的事。

于 2012-08-28T15:05:17.973 回答
1

您可能想研究 OpenCV:

http://opencv.itseez.com/doc/tutorials/core/basic_linear_transform/basic_linear_transform.html#brightness-and-contrast-adjustments

看起来它可能有用,但我不知道它是否足以满足您的特定用例。不过,您应该可以手动完成。

正弦波的渲染将通过计算图像位置相对于周期(例如周期 == 图像宽度)的正弦值来进行局部亮度调整。我对该库没有任何真正的了解,但是从以前使用 Matlab 和类似工具的经验来看,亮度分布将按像素计算,因此可以计算

local_brightness = sin(2pi*cur_pos/width)*local_brightness

如果您知道图像的颜色空间和格式,您不妨手动进行,如上所述的逐个像素。在这种情况下,您可以使用http://libav.org/读取图像并重新计算它。

哦,最后一个总体思路,假设您知道图像格式和色彩空间:

生成一个适合目标图像宽度的向量,然后计算与x轴相关的正弦信号,并将得到的向量与目标图像亮度相乘?

我承认这是一个很长的镜头,但它可能对你有用:P

于 2012-08-28T15:26:00.343 回答