Python ve OpenCV Kullanarak Ekran Koruyucu Uygulaması Geliştirme
Bu makalemizde Python ve OpenCV kullanarak basit bir ekran koruyucu uygulaması geliştireceğiz. Ekran koruyucular, ekranda sürekli aynı resmin kalmasını engellemek için yapılan uygulamalardır. Eski CRT monitörlerde sürekli aynı görüntünün ekranda kalması ekrana zarar veriyordu. Bunu engellemek için ekran koruyucular kullanılırdı.
Ekran koruyucu, bilgisayar bir süre boşta kaldığında ekranı istediğiniz herhangi bir şeyle dolduran bir bilgisayar programıdır. Çoğunuz dizüstü bilgisayarlarınızda, TV’nizde vb. Bir ekran koruyucu kullanmış olabilirsiniz. Eski güzel günlerde, çok kullanırdık. Bu makalemizde, Python ve OpenCv kullanarak zıplayan bir top ekran koruyucu oluşturacağız.
Görev:
Üzerine metin yazabileceğimiz bir Pencere oluşturun. 10 saniye yazmazsak ekran koruyucu başlayacaktır.
Bunun için iki şey yapmamız gerekiyor:
- İlk olarak, bir tuşun belirtilen sürede basılıp basılmadığını kontrol etmeliyiz. Burada 10 saniye kullandım.
- İkincisi, zıplayan bir top ekran koruyucu oluşturun ve yalnızca belirtilen süre içinde hiçbir tuşa basılmazsa görüntüleyin, aksi takdirde orijinal ekranı görüntüleyin.
İlk bölüm, bir tuşa basmak için belirli bir süre bekleyen OpenCV cv2.waitKey () işlevi kullanılarak yapılabilir ( Daha fazla bilgi için buraya bakın ).
İkinci bölüm için, önce zıplayan bir top ekran koruyucu yaratmamız gerekiyor. Ana fikir, sınırlarla çarpışmada artış işaretini (aşağıdaki kodda dx ve dy) değiştirmektir. Bu, aşağıdaki kod kullanılarak yapılabilir.
def screensaver(): img = np.zeros((480,640,3),dtype='uint8') dx,dy =1,1 x,y = 100,100 while True: # Display the image cv2.imshow('a',img) k = cv2.waitKey(10) img = np.zeros((480,640,3),dtype='uint8') # Increment the position x = x+dx y = y+dy cv2.circle(img,(x,y),20,(255,0,0),-1) if k != -1: break # Change the sign of increment on collision with the boundary if y >=480: dy *= -1 elif y<=0: dy *= -1 if x >=640: dx *= -1 elif x<=0: dx *= -1 cv2.destroyAllWindows()
Ekran koruyucunun anlık görüntüsü şuna benzer
Şimdi, bu ekran koruyucu işlevini aşağıdaki kodda gösterildiği gibi cv2.waitKey () işleviyle entegre etmemiz gerekiyor