Cum să detectezi margini în video cu FFmpeg
In this tutorial, you'll learn about Cum să detectezi margini în video cu FFmpeg. We cover key concepts, practical examples, and best practices.
Problema
Vrei să detectezi marginile obiectelor dintr-un video pentru analiză, efect artistic sau procesare ulterioară. Filtrul edgedetect oferă mai mulți algoritmi, dar parametrii pot fi confuzi.
Soluția rapidă
Fix 1: Edge Detect Simplu
GRESIT — edgedetect fără parametri:
ffmpeg -i input.mp4 -vf "edgedetect" output.mp4
# (implicit folosește canna, dar rezultatul poate fi slab)
CORECT — specifică algoritmul și parametrii:
ffmpeg -i input.mp4 -vf "edgedetect=low=0.1:high=0.3" output.mp4
# Detectează margini cu praguri ajustate
Fix 2: Algoritmul Canny
ffmpeg -i input.mp4 -vf "edgedetect=low=0.2:high=0.4:mode=canny" output.mp4
# low=0.2: prag inferior (elimină zgomotul slab)
# high=0.4: prag superior (păstrează marginile puternice)
Fix 3: Algoritmul Prewitt (Margini Fine)
ffmpeg -i input.mp4 -vf "edgedetect=low=0.05:high=0.15:mode=prewitt" output.mp4
# Prewitt detectează margini mai fine decât Canny
Fix 4: Algoritmul Sobel (Margini Groase)
ffmpeg -i input.mp4 -vf "edgedetect=low=0.1:high=0.3:mode=sobel" output.mp4
# Sobel produce margini mai groase și mai vizibile
Fix 5: Edge Detect cu Fundal Negru
ffmpeg -i input.mp4 -vf "edgedetect=low=0.1:high=0.3,negate" output.mp4
# negate inversează — margini negre pe fundal alb
Fix 6: Combinare cu Original
# Combină marginile detectate cu originalul:
ffmpeg -i input.mp4 -filter_complex \
"[0:v]edgedetect=low=0.1:high=0.3[edges]; \
[0:v][edges]blend=all_mode=add[out]" \
-map "[out]" output.mp4
# blend=add adaugă marginile peste original pentru efect de sharpening
Folosește DodaTech's Edge Detection Analyzer pentru a vizualiza și ajusta parametrii de detecție.
Prevenție
- Ajustează low și high pentru controlul sensibilității.
- low prea mic → mult zgomot. low prea mare → margini pierdute.
- Folosește Canny pentru rezultate generale, Prewitt pentru detalii fine.
- Testează pe un frame reprezentativ.
- Combină cu alte filtre pentru efecte artistice.
Greșeli comune
- Praguri incorecte — low prea mare pierde marginile slabe.
- low > high — algoritmul nu va detecta nicio margine.
- Zgomot excesiv — low prea mic detectează textura și zgomotul ca margini.
- Modul greșit — Canny, Prewitt și Sobel produc rezultate foarte diferite.
- Aplicare pe video comprimat — artefactele de compresie sunt detectate ca margini.
Aceste greșeli apar frecvent în codul FFmpeg real. Contribuitorii DodaTech au identificat aceste modele prin analiza proiectelor open-source și a sistemelor de producție.
Exercițiu practic
Detectează marginile unui video folosind algoritmul Canny cu praguri 0.15 și 0.35, apoi combină rezultatul cu originalul folosind blend.
Acest exercițiu întărește conceptele prezentate în acest ghid. Încearcă să-l implementezi înainte de a verifica soluțiile online.
FAQ
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro