Timewarp Filter with OpenCV and Python

Nurullah
2 min readJan 6, 2021

Merhaba arkadaşlar bu gün son zamanlarda sık sık rastladığımız bir tiktok filtresi olan timewarp filtreden bahsetmek istiyorum. Bu filtre kameranızı açıp videoyu kaydetmeye başladığınız andan itibaren belli bir süre içinde yukardan/yandan hareket eden bir çizgi, geçtiği noktaları kaydeder ve çizgi ekranın sonuna geldikten sonra son görüntüyü kaydeder; böylece gerçekten eğlenceli fotoğraflar oluşuyor. Peki bu filtre nasıl çalışıyor? evet gördüğümüz tek şey geçtiği yerleri donduran bir çizgi. Yazılım algoritması nasıl peki? Bu yazı tüm bu soruların cevabı olacak. Hadi Başlayalım.

Bu uygulamadaki ilk amacımız canlı bir video görüntüsü almak olmalı ki üzerinde işlem yapalım

VideoCapture

yukardaki kod sayesinde opencv modülünü kullanarak kameradan video alabiliyoruz.

Görüntüyü aldığımıza göre, şimdi görüntü üzerinden bir çizgi kaydıralım; bu çizginin rengini istefiğimiz gibi vere biliriz. Çizginin hareket etmesi için döngümüzde bir değğişken sürekli artacak ve bu çizginin konumunu değiştirecek.

Tamam çizgi görüntü üzerinde kayıyor peki arkasında bıraktığı kısımlar nasıl donacak? bu işlemi bir başka görüntü oluşturarak hallettik tabi yeni görüntüde çizginin geçtiği yerler donarken daha gelmediği yerler aynı görüntüyü vermeli; onun için yeni oluşturduğumuz görüntüde çizgiden önceki kısımları sabitlerken, sonraki kısımları kameradan aldığımız görüntüye eşitliyoruz. ve bu işlemi çizgi yukardan kayarkende yandan kayarkende yapmalı. Fonksiyon aşşağıdaki gibidir.

Bundan sonraki kısım yeni görüntüyü ekrana vermek tabi istersek kaydedebilmeliyisde. kodların tamamı github hesabımda bulunmakta indirip deneyebilirsiniz ayrıca biraz geliştirilmiştir. Allaha emanet olun 👋

--

--

Nurullah

AI, opencv, MachineLearning, Electrik Elektronik Engineer