Używam funkcji cvFindContour z opencv i tam jest parametr RETR_TYPE oznacza typ retrivel, stąd nie dostaję jaka jest różnica między CV_RETR_LIST
, CV_RETR_TREE
, CV_RETR_EXTERNAL
?różnica między CV_RETR_LIST, CV_RETR_TREE, CV_RETR_EXTERNAL?
12
A
Odpowiedz
16
Spójrz na the documentation for findContours
.
Główna różnica to hierarchy
, która jest zwracana (co daje związek między jednym konturem a następnym).
CV_RETR_EXTERNAL
daje „zewnętrzny” kontury, więc jeśli masz (powiedzmy) jeden kontur załączając innego (jak koncentrycznych kręgów), tylko najbardziej zewnętrzna jest podana.- daje wszystkie kontury i nawet nie przejmuje się obliczaniem
hierarchy
- dobrze, jeśli chcesz tylko kontury i nie dbasz o to, czy jeden jest zagnieżdżony w innym. CV_RETR_CCOMP
daje kontury i organizuje je w zewnętrzne i wewnętrzne kontury. Każdy kontur jest albo konturem obiektu, albo obrysem obiektu innego obiektu (to znaczy dziury).hierarchy
jest odpowiednio dostosowany. Może to być przydatne, jeśli (powiedzmy) chcesz znaleźć wszystkie dziury.CV_RETR_TREE
oblicza pełną hierarchię konturów. Można więc powiedzieć, że obiekt1 jest zagnieżdżony 4 poziomy głęboko w obiekcie2, a obiekt3 jest również zagnieżdżony na 4 poziomach.
0
Od imgproc.cpp
:
//! mode of the contour retrieval algorithm
enum RetrievalModes {
/** retrieves only the extreme outer contours. It sets `hierarchy[i][2]=hierarchy[i][3]=-1` for
all the contours. */
RETR_EXTERNAL = 0,
/** retrieves all of the contours without establishing any hierarchical relationships. */
RETR_LIST = 1,
/** retrieves all of the contours and organizes them into a two-level hierarchy. At the top
level, there are external boundaries of the components. At the second level, there are
boundaries of the holes. If there is another contour inside a hole of a connected component, it
is still put at the top level. */
RETR_CCOMP = 2,
/** retrieves all of the contours and reconstructs a full hierarchy of nested contours.*/
RETR_TREE = 3,
RETR_FLOODFILL = 4 //!<
};
OpenCV 2.4.13
Powiązane problemy
- 1. Różnica między „detekcja krawędzi” i „Obraz Kontury”
- 2. Różnica między form_for, form_tag?
- 3. Różnica między przeciążeniami Expression.Call?
- 4. Różnica między konwersji ciągów
- 5. Różnica między definicją słownika
- 6. Różnica między unwrapObservable i()
- 7. Różnica między "**/* /" i "** /"?
- 8. Różnica między dwiema tablicami
- 9. Różnica między Q.defer()() Obietnicy
- 10. Różnica między | = i^= css
- 11. Różnica między obiektem a *?
- 12. Composer.phar różnica między | i ||
- 13. Różnica między jquery a $
- 14. Różnica między "% ~ dp0" i ". \"?
- 15. Różnica między kodowaniami UTF?
- 16. Różnica między ". +" I ". +?"
- 17. MySQL: Różnica między ",", "i"
- 18. Różnica między numpy.logical_i and &
- 19. Różnica kręgosłupa Różnica między CompositeView i CollectionView?
- 20. Różnica między cuda.h, cuda_runtime.h, cuda_runtime_api.h
- 21. Różnica między logger.info i logger.debug
- 22. Różnica między fgets i fscanf?
- 23. Różnica między NSLog i DLog
- 24. Różnica między RoutedEventHandler i EventHandler
- 25. Różnica między bip pid a $$
- 26. Różnica między obrysem i wypełnieniem?
- 27. Różnica między Parameters.Add i Parameters.AddWithValue
- 28. Różnica między putback() i unget()
- 29. Różnica między Delegate.BeginInvoke i Thread.Start
- 30. Różnica między TVar i TMVar
Tu jest link do książki [OpenCV] (http://books.google.co.jp/books? ID = seAgiOfu2EIC & pg = PA236 i gazowe = PA236 i dq = CV_RETR_LIST, CV_RETR_TREE, CV_RETR_EXTERNAL i źródło = Bl OTS = hSF68jiEN9 i porządek = EukC6H9XafAm89zOkkw7UiFWvAc & hl = pl & sa = X & ei = pnQOT87GH-mimQWjn8TDAw i redir_esc = Y # v = onepage & Q = CV_RETR_LIST% 2CCV_RETR_TREE% 2CCV_RETR_EXTERNAL & f = fałsz), co wyjaśnia różnice (str 236- 237) –
Możesz znaleźć więcej szczegóły na temat tego artykułu: http://opencvpython.blogspot.com/2013/01/contours-5-hierarchy.html –