2015-02-24 116 views
1

我試圖從這張照片Python的OpenCV的找到圖像中的所有三角形

So from this

我希望得到這個(看發現圖像與代碼的所有三角形無功而返

import numpy as np 
import cv2 

img = cv2.imread('2.jpg') 

for gray in cv2.split(img): 
    canny = cv2.Canny(gray,50,200) 

    contours,hier = cv2.findContours(canny,1,2) 
    for cnt in contours: 
     approx = cv2.approxPolyDP(cnt,0.02*cv2.arcLength(cnt,True),True) 
     if len(approx)==3: 
      cv2.drawContours(img,[cnt],0,(0,255,0),2) 
      tri = approx 

for vertex in tri: 
    cv2.circle(img,(vertex[0][0],vertex[0][1]),5,255,-1) 

cv2.imshow('img',img) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

所以我裝滿了紅線三角形)

enter image description here

那我現在

enter image description here

+0

我看不出這兩個圖像之間的差異。你能詳細說明嗎? – rayryeng 2015-02-24 06:38:27

+0

看牌照,我裝滿了紅線三角形 – 2015-02-24 06:41:12

+0

哦!好吧。這不是很明顯。也許你應該把它添加到你的文章。我盯着背景和汽車。我沒有看牌照,因爲我沒有看到那裏。順便說一句,它看起來像代碼只找到**一個**三角形。當您檢測到每個多邊形的三個頂點時,「tri」不斷被替換。也許你應該在len(approx)== 3'時做一個列表並追加這些結果。 – rayryeng 2015-02-24 06:41:55

回答