2013-04-12 119 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