OpenCV ile python'da bulunan here algoritmasını bulmaya çalışıyorum. OpenCV’de yeniyim, benimle çıplak.Python OpenCV Contour ağaç hiyerarşisi
Algoritmanın parçasını, sahip olunan iç sınırların sayısına bağlı olarak önemsiz kenar sınırlarını ortadan kaldırmaya çalışıyorum. Geçerli kenar sınır tam olarak bir ya da iki iç kenar sınırları varsa
- , iç sınırları göz ardı edilebilir akım kenar sınırı ikiden fazla iç kenar sınırları varsa,
Resimden çıkardığım konturların ağaç yapısını belirlerken sorun yaşıyorum.
Benim akım kaynağı:
import cv2
# Load the image
img = cv2.imread('test.png')
cv2.copyMakeBorder(img, 50,50,50,50,cv2.BORDER_CONSTANT, img, (255,255,255))
# Split out each channel
blue = cv2.split(img)[0]
green = cv2.split(img)[1]
red = cv2.split(img)[2]
# Run canny edge detection on each channel
blue_edges = cv2.Canny(blue, 1, 255)
green_edges = cv2.Canny(green, 1, 255)
red_edges = cv2.Canny(red, 1, 255)
# Join edges back into image
edges = blue_edges | green_edges | red_edges
# Find the contours
contours,hierarchy = cv2.findContours(edges.copy(),cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
# For each contour, find the bounding rectangle and draw it
for cnt in contours:
x,y,w,h = cv2.boundingRect(cnt)
cv2.rectangle(edges,(x,y),(x+w,y+h),(200,200,200),2)
# Finally show the image
cv2.imshow('img',edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
Ben RETR_TREE kullanarak bana hatlarına güzel iç içe dizi verecekti ama bu durum görünmüyor farz. Konturlarımın ağaç yapısını nasıl alabilirim?
: http://opencvpython.blogspot.com/2013/01/contours-5-hierarchy.html cevap için –