2017-10-21 205 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