我有一個熔鍊立方體的圖像,隨着時間的推移形成一個液滴。到目前爲止,我提取了它的輪廓,但接下來我需要區分物體和表面。我的想法是檢測物體接觸表面的角落,但我正在努力尋找一個合理的方法來做到這一點(最好使用opencv的C++接口)。我會很感激任何建議。
這裏是所提取的輪廓的一些例子:
opencv物體輪廓角點檢測
編輯: @Haris:
我已經想你的建議的一個變種,它是做的工作對我來說:
在ap接近輪廓i從左邊靠近,尋找具有指定範圍中的值的第一個角度,然後從右邊開始。由於逼近的輪廓點是原始輪廓點的一個子集,我然後確定原始序列中的2個角點,並在兩個角落處剪切它。我把中間的部分當作水滴,左邊和右邊的部分,我重新宣佈是我的表面線。可能會有更好,更穩定的方法,但這對我有用。謝謝!
也許它會更容易從表面的物體與原始圖像區分(與爲例一個閾值)。我們有可能看到原始圖像嗎?首先想到的是 – Irisciences
。如果輪廓點按順序存儲(如它們在圖像中一樣)。我將選擇一個「好」的d_Index表示〜5(對於平滑的小噪聲),併爲每個點i計算「正切」向量P [i + 5] -P [i]。鄰接切線向量的內積將顯示拐角處的下降。找到下降的最小位置/ i(通過線性插值??)。第一個min_i_h和最後一個min_i_e將分割來自所有對象的輪廓。如果您需要該區域,請在P [i_h]到P [i_e]的原始圖像中畫一條線,然後重新找到輪廓線。 – maythe4thbewithu