Nếu máy ảnh được cố định và không có quá nhiều chuyển động trong cảnh, thì tôi sẽ đề xuất phương pháp dựa trên phép trừ nền.
Bước 1: Tính toán nền cho từng khung hình của video. Có những thuật toán phức tạp để làm điều này, nhưng một thuật toán rất đơn giản và hiệu quả sẽ là tính toán giá trị trung bình của mỗi điểm ảnh trong hình ảnh trên một cửa sổ thời gian 3 giây. Còn nếu đối tượng đang được đề cập đang di chuyển chậm. Ngẫu nhiên, nếu bạn chỉ thực hiện loại lọc này, nó sẽ xóa hầu hết các đối tượng chuyển động khỏi video nếu máy ảnh được cố định, do đó câu hỏi trước đây của tôi về tất cả các đối tượng so với một đối tượng.
Bước 2: Đánh dấu các khu vực bạn muốn xóa trong mỗi khung bằng công cụ cọ vẽ và thay thế chúng bằng các pixel nền. Đừng bận tâm với một công cụ brush hoặc lasso tốt như bất kỳ pixel không đối tượng nào bạn đánh dấu sẽ chỉ được thay thế bằng phiên bản đã lọc của chúng. Bạn có thể sử dụng cùng một dấu cọ cho nhiều khung hình vì ranh giới không quan trọng lắm. Nếu đối tượng là vật duy nhất di chuyển trong cảnh, bạn có thể chỉ đánh dấu toàn bộ khung hình và thay thế nó bằng nền sau.
Dù sao, để trả lời câu hỏi chung chung hơn, chủ đề bạn muốn nghiên cứu được gọi là inpainting cho hình ảnh và video.Có khá nhiều tài liệu trên đó về chủ đề, những gì tôi mô tả chỉ là một phương pháp siêu đơn giản mà bạn có thể thực hiện trong một giờ hoặc lâu hơn với opencv.
Bạn đang cố gắng loại bỏ một trường hợp cụ thể (ví dụ: một con chim cụ thể mà bạn có thể đánh dấu để xóa) hoặc tất cả các đối tượng không tĩnh (ví dụ: tất cả mọi người di chuyển) khỏi hiện trường? – Doug
Tôi muốn đưa ra các trường hợp cụ thể. Vì vậy, tôi giả sử một lúc đủ. – amssage