2017-10-21 81 views
1

我想找到4個支柱,它們是黃色的,並且還檢測到顏色爲白色的板的極端拐角。使用Opencv Python檢測拐角

基本上我想計算減去每個支柱面積後的整個空間面積。 首先,我試圖找出支柱的角落,找到每個支柱的面積。

Input image

這裏是我試過的代碼,我通過它幾乎一半。

import numpy as np 
import cv2 

img = cv2.imread('Corner_0.jpg') 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
gray = np.float32(gray) 

corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10) 
corners = np.int0(corners) 

for corner in corners: 
    x,y = corner.ravel() 
    cv2.circle(img,(x,y),3,255,-1) 

cv2.imwrite('Detected_Corner_0.jpg',img) 

Output image I got

我想檢測角落,計算支柱的區域。

當我使用Grabcut時,我可以申請一個支柱,這是否有意義?

After Applying Grabcut

+1

「我幾乎完成了一半」:我喜歡你的樂觀。 –

+0

您是指在圖像中看到的區域,還是真實的3D世界? –

+0

@YvesDaoust區域在圖像中看到 – venkat

回答

1

角檢測器往往不能依靠。展示額外的角落,並錯過你期望的。更重要的是,你必須確定重新組合他們。

通過計算飽和度圖像(LSH中的S)可以獲得有趣的結果。然後通過二值化和斑點分析,您可以輕鬆找到這些區域。

enter image description here

+0

謝謝,我能否計算出如果我使用上述方法,正如你所說 – venkat

+0

我從來沒有遇到過你提到的方法,我很欣賞,如果可能的話你可以嗎?爲我提供獲得結果的代碼。在此先感謝 – venkat

+0

它會工作,如果我使用抓取切割算法?? – venkat