2016-04-14 120 views
2
  • 我正在研究一個項目,並且我想讓牙齒變白。因此,需要找到牙齒的一部分。我嘗試equalizeHist,adaptiveThreshold,閾值,擴張,侵蝕等,但沒有得到確切的牙齒部分。
  • 所以任何人都可以告訴我我該怎麼做。我正在使用OpenCV C++庫。
  • 在輸入我有這樣的圖像

inputImage如何使用opencv檢測牙齒

  • 我發現這種類型的面膜

maskImage

  • 所以,如果我用這個面具形象看起來很不自然,

enter image description here

+0

你是指牙齒裏面的牙齒或牙齒出來? – Pierre

+1

您是否嘗試過使用haarCascades進行人臉檢測?這將縮小你的興趣區域 –

+0

@Pierre:口腔裏的牙齒 – Sagar

回答

1

我看到兩個問題。你找到了正確的區域,但邊界是不精確的。這可以通過查看色調的漸變來解決,這將形成清晰的輪廓。

其次,更大的作用IMO是你遠遠超過美白。這在牙齒之間失去了很多對比。您可能只想放棄黃色飽和度,但不要觸摸光度。

如果你想成爲一個真正的幻想,確定牙齒的邊緣在哪裏,並且你可以在其他地方消除光度。這消除了牙齒上的小污點。

+0

但我無法找到清晰的輪廓。這是我要求的。請給我更多關於色調漸變的解釋嗎? – Sagar

+0

@Sagar:將RGB轉換爲HSL色彩空間,獲取色調組件的漸變色。這將是一個矢量場,但你只需要在每個點的幅度。 (梯度方向無關緊要)。 – MSalters

+0

你可以發佈一些演示代碼? – Sagar