2012-06-17 44 views
1

這似乎是一個奇怪的問題,但我有一組照片,我想作爲一個衰落的屏幕保護程序使用的,我想每個圖片有一個附帶的報價,但每個報價會在不同的地方,相對於圖片。查找然後隱藏圖像中的繪製形狀?

而不是爲每個圖像的區域編碼Rectangle,只需在圖像中繪製一個矩形並將其繪製在其中即可。

現在,繪製的形狀將是一個鮮明的,統一的彩色邊框(例如青檸色),因爲圖片中不會出現顏色,並且它會顯示在純色背景上,例如黑色。我的問題是:如果我在每個圖像上繪製一個檸檬綠矩形,那麼我怎麼能使用C#在圖像中找到該矩形,獲取它的尺寸,並用背景色代替石灰綠,所以在最終產品中,它看起來像是從來沒有開始的形狀?

我沒有嘗試過任何東西,我沒有代碼來展示,因爲它是一個想法,我有,雖然我敢肯定,這一定是有可能,我甚至不知道開始尋找什麼。

我希望這是可能的,如果不是,那麼我就畫爲每一個矩形,但是這是一個不得已而爲之。 :)

+0

絕對沒有。這只是一個想法,因爲我甚至不知道如何開始使用Google。 –

+0

您應該嘗試自己製作,然後發佈有關特定問題的問題。我們不能期望爲您編寫程序。 ;) – annonymously

+0

@匿名我不希望你爲我寫這篇文章,只是指出我在正確的方向;) –

回答

0

你有沒有想過使用無論是emgucvaforge庫?他們能夠很容易地檢測圖像中的形狀。雖然他們沒有完美地檢測邊緣,但是如果你想要檢測的只是一個矩形,任何一個都應該工作得很好。

下面是關於形狀檢測兩個教程爲emgu cvaforge。一旦你檢測到了形狀,那麼你可以很容易地將其剪下來作爲背景。例如,假設您使用aforge檢測四邊形(在鏈接中),那麼您可以通過調用blobs[i].Rectangle;輕鬆獲取矩形的位置和大小,並創建一個具有相同大小和位置並帶有圖片背景色的矩形。

如果您需要更多的澄清,請隨時發表評論。好主意!

+0

這看起來非常有前途:)但是,通過他們閱讀後,我不明白的是,我看到他們檢測形狀,但他們在我的圖像中檢測到*全部*形狀。我怎麼能限制它只是一種顏色的形狀?因爲我不確切知道我的圖像會包含什麼樣的形狀,也不知道我的搜索矩形的大小是多少,所以我無法對其進行編碼。任何想法?有沒有一點,甚至是一頁,我錯過了? –

+0

你說@Spiritfyre「現在,繪製的形狀將是一個鮮明的,統一的彩色邊框(例如青檸色),因爲顏色不會出現在圖片中,」如果顏色沒有出現在圖片中,你可以找出是否blob面積含有檸檬綠。例如,循環遍歷blob中的像素,直到找到顏色(如果它全部是一種顏色,它應該只需要一個循環),並且如果找到它,則打破並將其作爲要刪除的blob。如果你想確定它是一種顏色,比循環直到你有10個相同顏色的像素。 – SuperPrograman

+0

太棒了,謝謝。我沒有想到這一點。 :) –