Hareketli ekranda fotoğraf arama

from python_imagesearch.imagesearch import imagesearch_count

count = imagesearch_count("./github.png")
print(count)

sabit görüntüde istediğim fotoğrafı aratıp , toplam kaç adet bulduğunu yazdırabiliyorum. İşin içine hareket girince ortalık karışıyor…
Örnek vermek gerekirse bu başlıkta profil fotoğrafımı arattık diyelim. Başlıkta tek mesajım olduğu için bir kere buldu problem yok. Yorumlar gelmeye devam etti profil fotoğrafım yukarda kaldı ve tekrar yeni yorum girdiğimde çıktıyı nasıl 2 olarak alabiliriz ?

Bu görüntüyü nereden aldığınızla alakalı bir durum.

Örneğin ekran görüntüsü aldınız. Ekranda ne varsa o kadar bilgi oluşur onun üzerinde arama yapabilirsiniz.

Konuyu başlıkta anladığım gibi yorumlasam. Video gibi düşünür, belirli aralıklarla ekran görütünsü al frame ler şeklinde olduğundan sıra ile tara derdim.

Ama örnek bu forumda olduğu gibi derseniz.

Durum yine değişir.

Artık hem resmi arama hemde gül gibi web sayfasını scrolldown yapmak gibi bir probleminiz olur.

Dahası, sonuçta bu resimler hazır.

Selenium benzeri yöntemlerle resimleri doğrudan tespit edip sadece resimleri de opencv kullanmadan alabilirsiniz.

Ama nerede görüntü aldığınız söylediğim gibi önemli. Web sayfası manipüle edip ekran resmi almak sonra görüntünün olduğu konuma geri gitmek opencv den alakasız kalır.

Bunun için web sayfası sorgulayabilecek ve site yapısına bağlı durumları göz önünde tutacak yaklaşımlar gerekecektir.

iyi günler sayın @semtex
imagesearch kütüphanesinin yaptığından farklı bir şey yapmak istemiyorum. Elimde hazır görsel var ve bu görseli aratıp , görseli bulduğu konumun x / y bilgisini alıyorum. Belirli bir uygulamadan , videodan vs değil.

from python_imagesearch.imagesearch import imagesearch

pos = imagesearch("./github.png")
if pos[0] != -1:
    print("position : ", pos[0], pos[1])
else:
    print("image not found")
# Simply search for one occurrence of the image “github.png” on the screen and print its x/y position

Benim derdim hangi x/y konumunda bulduğundan daha çok görseli kaç kere bulduğu ile alakalı. Kütüphane içindeki count fonksiyonu var ama maalesef anlık veriyi veriyor. Yani görsel o an ekranda ise print çıktısı “3” görsel o an ekranda yoksa çıktı tekrar “0” oluyor. Dediğim gibi bana toplam sonuç lazım. Örneğin haber kanallarının alt yazılarındaki dolar / tl bilgisi 1 saat içinde kaç kere ekrana gelmiştir? bunu görsel arama ile bulmak istiyorum.

Doğru anladıysam, siz belirli bir periyotta saymak istiyorsunuz.

Bunun OpenCV ile doğrudan alakası yok.

Multi-template matching with OpenCV - PyImageSearch

Görüntüden saydınız.

Sonra bir global değişkene aktardınız.

Tekrar periyot sonunda saydınız.

Bu nu önceki aktartığınız global değişkene eklersiniz.

Yani bir sayaca saydıkça artırarak eklemek.

Anlatma kabiliyetim zayıftır tekrar etmem gerekirse,

Saydıklarınızı bir değişkende saklayıp, buldukça bu değişkendeki değere ekleyerek artırın.

Tabi doğru anladıysam.

pos = imagesearch("./github.png")
if pos[0] != -1:
    print("position : ", pos[0], pos[1])
    sayac = sayac +1 # goruntuleri sayarak eklemek için kullanılan genel bir değişken
else:
    print("image not found")

Bu da tekrarlanan bir pattern i saymak için örnek:

Counting special elements on image with OpenCV and Python - Stack Overflow

Hali hazırda bulduğu görüntüyü tekrar tekrar sayıyor. ya da görüntü ekrandan çıktığında sayaç başa dönüyor…

BeautifulSoup öğrenmeye çalışırken 2 gündür bununla uğraşıyorum, iyice karıştı çözüm bulamadım.

bu abimizin yazdığı kod üzerinden gösterebilme imkanınız var mı ?

Kodlara bu ara zaman ayıramıyorum. Tabi ki zamanım olursa bakabilirim.

İle pozisyonu almışsınız. Bu durumda bu pozisyonu bir yere kaydedin, bir dahakine bu pozisyondakini saymayın.

Aslında program doğru çalışıyor.

Resim değiştiğinde, sayımı baştan yapıyor. Daha önce bunu buldum mu diye kontrol etmez.

Bunu siz kontrol etmelisiniz.

Bulduğunuz resimler daha önceki pozisyonlarda ise sayaca eklemeyecek şekilde kodlayın.

1 Beğeni

Bulduğunuz resimler daha önceki pozisyonlarda ise sayaca eklemeyecek şekilde kodlayın

resim, haber altyazıları gibi belirli bir düzlemde ilerliyor o yüzden kodlayamadım. zaman aralığı ekleyip kolaya kaçtım. tabi hata payı %70 :d
image search kütüphanesi yerine direkt cv2 öğrenmeye başladım bu arada. en son attığım kodlar üzerinden yapmaya çalışacağım her bir resmi kare içine alıp isimlendiren örneklerde var ama zaman alacak gibi.
vakit ayırıp ilgilendiğiniz için çok teşekkürler.

Python OpenCV Traffic Counter (jorgestutorials.com)

Simple vehicle counting using OpenCV YOLO3 Python 3.5 and Sort - YouTube

GitHub - cfotache/pytorch_objectdetecttrack: Object detection in images, and tracking across video frames

Kayan yazı ise dikey bir sınır çizin sınırdan geçenleri sayın.

Buralardan bir yere varabilirsiniz belki.