/ / Wykryj kształty za pomocą Open CV - c, opencv, rozpoznawanie kształtów

Wykrywaj kształty za pomocą Open CV - c, opencv, rozpoznawanie kształtu

Próbowałem wykryć kształty na obraziea także ustalić liczbę takich kształtów obecnych na obrazie, na przykład znak plus. Czy są jakieś wbudowane funkcje do wykrywania takich kształtów? JEŚLI jakikolwiek, proszę dać mi znać.

Dziękuję Ci.

Odpowiedzi:

1 dla odpowiedzi № 1

Musisz znaleźć wszystkie kontury na obrazie, a następnie je przefiltrować.

Wiemy, że znak plus ma 12 rogów. Musisz więc odfiltrować wszystkie kontury, które mają 12 narożników. Oczywiście czasami może to dać ci niechciane przedmioty. Możesz więc ponownie filtrować te kontury, które mają kąty między 2 liniami (3 narożniki), na przykład maks. 0,3 cos.

Spójrz na squares.cpp w katalogu próbek OpenCV. Znajduje wszystkie kontury z maksymalnie 4 narożnikami i kątami. 0,3 cos. Więc prawie wszystkie kwadraty.


0 dla odpowiedzi nr 2

Możesz także rzucić okiem na transformację Hougha.


0 dla odpowiedzi № 3

Jednym ze sposobów wykrywania kształtów jest korzystanie z nich cvBlobsLib.

Podłączona biblioteka do wykonywania obrazów binarnychetykietowanie części (podobny do funkcji Matlab regionprops). Zapewnia również funkcje manipulować, filtrować i wyodrębniać wyniki z wyodrębnionych obiektów blob, zobacz sekcję Funkcje, aby uzyskać więcej informacji.

Na przykład patrz: https://www.youtube.com/watch?v=Y8Azb_upcIQ

Alternatywą jest skorzystanie z EmguCV

Emgu CV to platforma wieloplatformowa.Opakowanie netto do obrazu OpenCV biblioteka przetwarzania. Zezwolenie na wywoływanie funkcji OpenCV z .NET kompatybilne języki, takie jak C #, VB, VC ++, IronPython itp. Opakowanie można skompilować w trybie Mono i uruchomić na systemach Windows, Linux, Mac OS X, iPhone, iPad i urządzenia z Androidem.