2013-04-12 122 views
1

我有一个图像(从我的手机相机拍摄,或者可能画在我的电脑上的油漆),其中我有白色背景和矩形图内画线。我只考虑矩形内的东西,包括它的边界。从图像创建一个数组

现在我想创建一个数组出这使得对所有的线阵列应该有值1的和所有的自由空间阵列应该有0

我在Ubuntu的工作,一旦阵列的被创建,我在C程序中进一步使用它。

任何导致我可以使用什么软件?我听说过imagemagick,这会有帮助吗?

请帮忙。 谢谢。

+0

图像存储在哪种格式?是YUV或RGB还是JPEG?如果我理解正确,你正试图创建一个负面的形象?这是一个正确的理解? – Ganesh

+0

我不确定阴性意味着什么,但是对于矩形区域内的所有空白区域,阵列应该有0,对于所有画出的线条,它应该有1. 我想如果从相机捕获它,将是JPEG。 – Kraken

+0

如果您的图像只有一种格式(例如,带有固定参数的png),使用单个特定库(在这种情况下为 - libpng)比使用imagemagic更简单。 –

回答

1

我会按照这些步骤:

  • 负载图像(任何格式)与图像处理库。我建议CImg作为一个易于使用的库。

  • 应用阈值图像并创建一个b & w版本。这里可能会有一些噪音,您可能需要使用阈值。

  • 检测大矩形(这是有点棘手)和作物其内部。

现在转换成一个阵列应该很容易,只是迭代像素和检查,如果是黑色或白色。

+0

感谢您的回复。其实我到目前为止只使用C语言。我不确定如何使用Clmg库。你能告诉我用什么方法来加载,应用阈值并使用该库检测大矩形。或者你会连接的链接将能够引导我通过?再次感谢。 – Kraken

+0

是的,它是C++,它可能不是那么容易。 我已经使用了几年,但我记得它是最简单的使用之一,再加上它只有一个头文件。检查[教程](http://cimg.sourceforge.net/reference/group__cimg__tutorial.html) –

+0

谢谢。一旦我从这个方法得到0和1的数组,我将能够在我的C程序中使用它? – Kraken