Jeśli kamera jest nieruchoma i nie ma zbyt dużego ruchu w scenie, sugerowałbym metodę opartą na odejmowaniu tła.
Krok 1: Oblicz tło dla każdej klatki filmu wideo. Są do tego skomplikowane algorytmy, ale bardzo proste i skuteczne byłoby obliczenie mediany wartości każdego piksela na obrazie w 3-sekundowym oknie czasowym. Dłuższe, jeśli przedmiot porusza się powoli. Nawiasem mówiąc, jeśli po prostu wykonasz tego rodzaju filtrowanie, usunie on większość ruchomych obiektów z filmu, jeśli kamera jest nieruchoma, stąd moje wcześniejsze pytanie o wszystkie obiekty w stosunku do jednego obiektu.
Krok 2: Zaznacz obszary, które chcesz usunąć w każdej ramce za pomocą narzędzia pędzla, i zastąp je pikselami w tle. Nie zawracaj sobie głowy drobnym pędzlem lub lasso, ponieważ zaznaczone piksele nie będące obiektami zostaną zastąpione ich filtrowaną wersją. Prawdopodobnie można użyć tych samych znaków pędzla dla kilku klatek, ponieważ granica nie jest tak ważna. Jeśli obiekt jest jedyną rzeczą poruszającą się w scenie, możesz po prostu oznaczyć całą ramkę i zastąpić ją tłem.
W każdym razie, aby odpowiedzieć na bardziej ogólne pytanie, temat, który chcesz zbadać, nazywa się inpainting w przypadku zdjęć i wideo.Istnieje sporo literatury na ten temat, to, co opisałem, było po prostu super prostą metodą, którą można zaimplementować w ciągu godziny z opencv.
Czy próbujesz usunąć konkretną instancję (np. Jeden konkretny ptak, który można oznaczyć do usunięcia) lub wszystkie niestatyczne obiekty (np. Wszystkie poruszające się osoby) ze sceny? – Doug
Chciałbym usunąć konkretne instancje. Tak więc przypuszczam, że wystarczy pojedynczo. – amssage