Python ile, canlı ekrandan bir metni alıp, yazdırabilir miyim?

Selam arkadaşlar
metinden yada resimden yazıları alıp işleme koyma yöntemlerini buldum ama bi türlü "canlı ekran"dan yazı alıp işlemek için bi yöntem bulamadım.

bana şöyle bişe lazım
ekranda değişken bi yazı var. onu sürekli okuyup bana bildirecek, yani bi değişken olarak kullanmama olanak sağlayacak.

öğrenmeye çalışıyorum, yardımcı olursanız çok sevinirim :slight_smile:

Merhaba,
Ekranda bulunan Metni, belirli aralıklarla denetleyip kopyalamak için PyAutoGUI kütüphanesini kullanabilirsin. Araştırmanı öneririm.

1 Beğeni

teşekkür ederim.
bununla istediğim şeyi yapmak için sürekli ekran görüntüsü alıp bi yere kaydettirip oradan sayıları alıp işleme koymalı sonra resmi silmeli ve döngüyü tekrarlamalıyım. bu bana hem pc için hem de benim için yorucu zahmetli bi süreç gibi geldi. gerçi öğrenmek için bu yolu da deneyecem. ama yine de bunun daha kolay bi yolu var mı :slight_smile: ? almak istediğim yazı fare ile seçilebilir bi yazı da değil.

Tam olarak bu dediğiniz gibi yapılıyor. Aşağıdaki gibi birkaç kaynaktan inceledim ve daha farklı bir yol bulamadım.

1 Beğeni

teşekkür ederim.
bununla istediğim şeyi yapmak için sürekli ekran görüntüsü yada 1 fps lik video alıp bi yere kaydettirip oradan sayıları alıp işleme koymalı sonra videoyu yada resmi silmeli ve döngüyü tekrarlamalıyım. bu bana hem pc için hem de benim için yorucu zahmetli bi süreç gibi geldi. gerçi pratik için bu yolu da deneyebilirim. yine de bunun daha kolay bi yolu olmalı :slight_smile: ?

Hocam biraz kaynak kodları araştırdım. Önce PyAutoGUI kütüphanesinde ekran görüntüsü alan koda baktım. Herhangi bir şey kodlamadan direkt pyscreeze kütüphanesindeki screenshot fonksiyonunu kullanmışlar. Pyscreeze kütüphanesine gidip baktım. Onlar da herhangi bir şey kodlamadan pillow kütüphanesindeki ImageGrab.grab fonksiyonunu kullanmışlar. Pillow’un kaynak koduna indim. Onlar kendi bu fonksiyonu işletim sistemlerine göre ayırıp kendi yazdıkları Image modülündeki core sınıfına dayandırmışlar. Image modülünü açıp baktığımda core diye bir sınıf tanımlanmadığını direkt olarak _imaging modülünden alındığını gördüm. Biraz aşağı inip _imaging.c dosyasını bulduğumda artık c kodları vardı :slight_smile: . En son her şeyi tanımlayan display.c dosyasında 100 satırlık bir fonksiyon buldum. İçim rahatladı. Ama kodu anlamadım.

Kısacası bu iş Python’ın boyunu aşıyor. C abisinden destek almış. O desteği de sadece ekran görüntüsüne kadar almış. Biz de kendi oyuncağımızla yetinmek için döngü oluşturma yoluna gitmişiz. Yani daha kolay bir yolu python için yok. Ama C için vardır. Onda da resimden yazıya geçme için yöntem olup olmadığını bilmiyorum.

Kurduğunuz döngüdeki ekran görüntülerini kaydetmek zorunda değilsiniz. io modülü içinde FileIO sınıfını kullanabilirsiniz.

:joy: :joy:
maşallah
e Python un esprisi de bu, bişeylerin üstüne binmesi x) işlem hızından kaybedip insan zamanından kazandırması.

FileIO biraz baktım bişe anlamadım x( biraz daha vakit ayırmam lazım. çok teşekkür ederim

şöyle basit bi kod işi çözdü. ama sürekli aynı verimlilikle çalışmıyor :frowning:

import pyautogui
import pytesseract

# Ekran görüntüsünü al
im = pyautogui.screenshot(region=(126, 60, 170, 135))

# Görüntüyü metne dönüştür
txt = pytesseract.image_to_string(im)

# Sadece sayıları al
numbers_only = ''.join(c for c in txt if c.isdigit())

# Yalnızca sayıları yazdır
print(numbers_only)

Hocam Python size en fazla bu hızı verebilir. Derlemeli dillerden biriyle(C, java vs.) daha yüksek verimlilik elde edebilirsiniz.

teşekkür ederim. henüz değil. bu iş benim için bi hobi :slight_smile: arada küçük oyuncaklar yapmak iyi oluyo. diğer diller çok zahmetli şimdilik. inşallah ilerde