Cv2 ile ekran videosu çeken program yardım

import cv2
import numpy as np
import pyautogui


ekranBoyutu = (1366, 768)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("out.avi", fourcc, 20.0, ekranBoyutu)


while True:
    img = pyautogui.screenshot()
    frame = np.array(img)
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    out.write(frame)
    if cv2.waitKey(1) == ord('q'):
        break

Merhabalar şöyle bir program yazdım ama belirtiğim bölgenin ekran videosunu almasını sağlayamıyorum.
img = pyautogui.screenshot(region=(0,0, 300, 400)) yazarak 0, 0 300, 400 bölgesinin ekran görüntüsü almak istiyorum ama işe yaramıyor.Sorunun cv2.VideoWriter dan kaynaklandığını düşünüyorum. Bilgisi olan yardım edebilir mi acaba=?

Çalıştırdığınız zaman aldığınız bir hata var mı?

Hayır yok. Sadece kaydedilen video oynatılmıyor.

Hangi medya oynatıcısı ile video yu izlemeye çalışıyorsunuz?

vlc player …

Acaba ekranBoyutu da (300, 400) olmadığından olabilir mi? Bende şu kod çalıştı, yaklaşık 11 saniyelik bir kesit alabildim (vlc ile oynatarak):

import cv2
import numpy as np
import pyautogui

ekranBoyutu = (300, 400)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("sazan.avi", fourcc, 20.0, ekranBoyutu)

i = 0
while True:
    img = pyautogui.screenshot(region=(0,0, 300, 400))
    frame = np.array(img)
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    out.write(frame)
    i -=- 1
    if i > 270:
        break
1 Beğeni

İşe yaradı , ama daha Önce senin yaptığın gibi denemiştim ama çalışmamıştı. Nerede hata yaptım acaba ?

Bilemiyorum, nasıl bir şey geliyordu böyle VLC titreyip bir şey gösteremiyor muydu yoksa alakasız pikseller mi çıkıyordu? Her iki durumda da bilemiyorum :d.

video hiç açılmıyordu