Opencv phát video với âm thanh python

Trong Python, bạn có thể đọc, chụp và hiển thị các tệp video và luồng camera bằng cách sử dụng lớp

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
1 với OpenCV. Lưu ý rằng phải bật
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
2 trong OpenCV để xử lý video

  • OpenCV. sơ yếu lý lịch. Tham khảo lớp VideoCapture

Bài viết này mô tả các nội dung sau

  • Yêu cầu kích hoạt
    import cv2
    
    cap_cam = cv2.VideoCapture[0]
    print[type[cap_cam]]
    # 
    
    print[cap_cam.isOpened[]]
    # True
    
    2 để xử lý video trong OpenCV
  • đọc video.
    import cv2
    
    cap_cam = cv2.VideoCapture[0]
    print[type[cap_cam]]
    # 
    
    print[cap_cam.isOpened[]]
    # True
    
    4
    • Đọc tập tin video
    • Quay video từ luồng camera
    • Đóng video
  • Nhận và đặt thuộc tính video [kích thước, FPS, số khung hình, v.v. ]
    • Nhận thuộc tính video.
      import cv2
      
      cap_cam = cv2.VideoCapture[0]
      print[type[cap_cam]]
      # 
      
      print[cap_cam.isOpened[]]
      # True
      
      5
    • Đặt thuộc tính video.
      import cv2
      
      cap_cam = cv2.VideoCapture[0]
      print[type[cap_cam]]
      # 
      
      print[cap_cam.isOpened[]]
      # True
      
      6
  • Nhận hình ảnh khung trong mảng NumPy
    import cv2
    
    cap_cam = cv2.VideoCapture[0]
    print[type[cap_cam]]
    # 
    
    print[cap_cam.isOpened[]]
    # True
    
    7
    • Đối với tệp video
    • cho máy ảnh
  • phát video
    • Lặp lại phát lại tệp video
    • Hiển thị video thời gian thực từ camera
  • xử lý hình ảnh thời gian thực

Hướng dẫn về video trong tài liệu chính thức dưới đây

  • OpenCV. Bắt đầu với Video

Phiên bản OpenCV của mã mẫu là

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
8

Xem bài viết sau để biết thông tin về cách đọc và ghi ảnh tĩnh, không phải video

  • Đọc và lưu file ảnh với Python, OpenCV [imread, imwrite]

Liên kết được tài trợ

Yêu cầu kích hoạt
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
2 để xử lý video trong OpenCV

Phải bật

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
2 để xử lý video trong OpenCV. Nếu xảy ra lỗi và không tải được video, trước tiên bạn nên kiểm tra xem đã bật
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
2 chưa

Bạn có thể kiểm tra thông tin xây dựng OpenCV với

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
12

  • Kiểm tra thông tin xây dựng OpenCV. getBuildInformation[]

Cách xây dựng với

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
2 được bật khác nhau tùy thuộc vào môi trường và không được thảo luận ở đây

Đối với macOS, nếu bạn cài đặt OpenCV với Homebrew, ffmpeg sẽ được cài đặt đồng thời và

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
2 sẽ được bật [kể từ ngày 27 tháng 1 năm 2019]

đọc video.
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
4

Tạo một đối tượng

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
1 với
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
4 để xử lý video

  • OpenCV. sơ yếu lý lịch. Tham khảo lớp VideoCapture

Đọc tập tin video

Để đọc tệp video, hãy chỉ định đường dẫn đến tệp trong

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
4. Nó có thể là đường dẫn tuyệt đối hoặc đường dẫn tương đối

Bạn có thể kiểm tra xem nó có được đọc thành công hay không bằng phương pháp

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
19. Nếu không có vấn đề gì,
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
90 được trả lại

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
0

nguồn.

Lưu ý rằng

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
4 không phát sinh lỗi nếu chỉ định sai đường dẫn. Bạn nên kiểm tra với
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
19

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
3

nguồn.

Quay video từ luồng camera

Để quay video từ camera tích hợp của PC hoặc camera/webcam USB, hãy chỉ định chỉ mục thiết bị trong

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
4

Trong hầu hết các trường hợp, chỉ mục thiết bị được chỉ định từ

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
94, chẳng hạn như
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
94 cho camera tích hợp và
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
96 cho camera bổ sung được kết nối qua USB

Theo hướng dẫn trong tài liệu chính thức, có những trường hợp nó là

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
97

Dù sao, bạn có thể thử chúng theo thứ tự

API để nhận danh sách các camera khả dụng chưa được cung cấp [kể từ ngày 27 tháng 1 năm 2019]

  • Thêm API để liệt kê các camera · Vấn đề #4269 · opencv/opencv

Bạn có thể kiểm tra bằng phương pháp

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
19 để xem máy ảnh có được chỉ định thành công hay không, giống như cách bạn làm với tệp video

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True

nguồn.

Lưu ý rằng, như với các tệp video,

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
4 không phát sinh lỗi nếu chỉ định chỉ mục thiết bị không chính xác

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
1

nguồn.

Đóng video

Bạn có thể đóng các tệp video và thiết bị camera bằng phương pháp

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
30

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
9

nguồn.

Nhận và đặt thuộc tính video [kích thước, FPS, số khung hình, v.v. ]

Nhận thuộc tính video.
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
5

Bạn có thể lấy các thuộc tính của video đã mở bằng phương thức

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
5 của đối tượng
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
1

Video mẫu sau đây được sử dụng làm ví dụ. Xin lỗi vì trang web của Nhật Bản, nhưng nếu bạn chọn hộp kiểm ở góc dưới bên phải, bạn có thể tải xuống tệp từ nút màu xanh lam

  • Thư viện Sáng tạo NHK

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
3

nguồn.

Chỉ định thuộc tính làm đối số của phương thức

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
5

Ví dụ: bạn có thể lấy kích thước [chiều rộng và chiều cao], FPS [khung hình trên giây] và tổng số khung hình như sau

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
0

nguồn.

Bạn có thể tính toán thời gian phát lại của video tính bằng giây với

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
35

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
2

nguồn.

Xem tài liệu chính thức để biết danh sách định danh tài sản

Lưu ý rằng nếu bạn sử dụng OpenCV2, bạn cần phải thêm tiền tố vào nó bằng

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
36

Ví dụ trên sử dụng tệp video, nhưng điều này cũng đúng với luồng camera. Tuy nhiên, có một số khác biệt, chẳng hạn như tổng số khung hình không được đặt [luôn là 194] vì máy ảnh là video thời gian thực

Đặt thuộc tính video.
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
6

Một số thuộc tính có thể được đặt thành giá trị bằng phương thức

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
6. Chỉ định thuộc tính làm đối số đầu tiên và giá trị làm đối số thứ hai

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
6 trả về
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
90 hoặc
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
02. Nếu không thể thay đổi, thì trả về
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
02. Trong trường hợp này, giá trị vẫn giữ nguyên

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
1

nguồn.

Nếu giá trị có thể thay đổi, thì trả về

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
90

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
3

nguồn.

Thuộc tính

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
05 đại diện cho vị trí hiện tại của video. Chi tiết được mô tả dưới đây

Lưu ý rằng ngay cả khi

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
6 trả về
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
90, giá trị có thể không thay đổi. Ví dụ:
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
6 được sử dụng để thay đổi FPS của máy ảnh, nhưng nếu bản thân máy ảnh không hỗ trợ FPS đó, giá trị có thể không thay đổi ngay cả khi
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
6 trả về
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
90

Liên kết được tài trợ

Nhận hình ảnh khung trong mảng NumPy
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
7

Bạn có thể lấy các khung của video dưới dạng mảng NumPy

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
7 bằng phương thức
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
23 của đối tượng
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
1

Đối với tệp video

Đối với các tệp video, bạn cần xem xét vị trí hiện tại

Bạn có thể lấy số lượng khung hình hiện tại và thời gian đã trôi qua tính bằng mili giây bằng phương pháp

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
5. Cả hai đều là
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
94 khi tệp được mở

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
30

nguồn.

Gọi phương thức

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
23 tại đây

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
23 trả về một bộ bao gồm
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
29 cho biết khung đã được đọc thành công hay chưa và
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
7, mảng hình ảnh. Bạn có thể gán cho từng biến khi giải nén

  • Giải nén một bộ và liệt kê trong Python

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
31

nguồn.

Nếu bạn muốn lưu ảnh khung hoặc làm gì đó, bạn có thể làm điều đó với

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
7 này

Khi phương thức

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
23 được thực thi, vị trí hiện tại được nâng lên một khung. Thời gian trôi qua của một khung hình bằng nghịch đảo của FPS

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
32

nguồn.

Bạn có thể di chuyển vị trí hiện tại đến bất kỳ khung hình nào bằng phương thức

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
6

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
33

nguồn.

Nếu

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
23 được gọi ở đây, vị trí hiện tại được tăng thêm một khung

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
34

nguồn.

Nếu vị trí hiện tại được đặt thành tổng số khung, thì

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
23 trả về
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
02 và
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
17 vì không còn khung nào tồn tại. Trong trường hợp này, vị trí hiện tại không tăng và vẫn ở cuối

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
35

nguồn.

Nếu một giá trị lớn hơn tổng số khung được đặt, vị trí hiện tại vẫn ở cuối

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
36

nguồn.

cho máy ảnh

Trong một luồng trực tiếp từ máy ảnh, các khung hình mới được nhập liên tục. Không giống như các tệp, máy ảnh không có vị trí hiện tại và

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
05 luôn trả về
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
94

Khi

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
23 được gọi, hình ảnh của khung mới được nhập sẽ được đọc

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
37

nguồn.

phát video

OpenCV không cung cấp bất kỳ phương pháp nào để phát [hiển thị] video

Bạn có thể hiển thị hình ảnh được tải bằng

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
23 liên tục bằng
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
32. Vì đây chỉ là phần hiển thị hình ảnh nên âm thanh sẽ bị bỏ qua

Lặp lại phát lại tệp video

Một ví dụ về phát lại lặp lại một tệp video như sau. Nhấn

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
33 để thoát

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
38

nguồn.

Sử dụng một vòng lặp vô tận với câu lệnh

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
34, hình ảnh sẽ tiếp tục được đọc và hiển thị cho đến khi nhấn
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
33 trên bàn phím

  • vòng lặp while trong Python [vòng lặp vô hạn, v.v. ]

Khi video được phát đến cuối, phương pháp

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
6 đặt vị trí hiện tại thành
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
94 [vị trí bắt đầu của video]

Nếu bạn chỉ muốn phát video một lần mà không lặp lại, hãy đặt

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
38 sau
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
39

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
300 dừng hoạt động trong một thời gian xác định [tính bằng mili giây] và đợi đầu vào bàn phím. Nếu
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
300 được đặt thành
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
94, nó sẽ đợi cho đến khi nhập bàn phím, vì vậy hình ảnh hiển thị không được cập nhật cho đến khi nhấn một số phím. Hình ảnh được cập nhật khi nhấn một phím khác ngoài
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
33

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
304 đóng cửa sổ với tên đã chỉ định.
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
305, đóng tất cả các cửa sổ, cũng được cung cấp

Phương thức

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
30 được gọi tự động trong hàm hủy của đối tượng
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
1, vì vậy nó được bỏ qua ở đây. Nếu mã tiếp tục sau đó, có thể an toàn hơn nếu đóng mã một cách rõ ràng bằng
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
30

Hiển thị video thời gian thực từ camera

Một ví dụ về phát lại video thời gian thực từ camera như sau. Nhấn

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
33 để thoát

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
39

nguồn.

Nếu máy ảnh không ổn định, một số khung hình không thể đọc được bởi

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
23 và
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
311 có thể bị trả lại. Trong trường hợp này, hãy sử dụng
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
312 để kiểm tra xem khung đã được đọc chính xác chưa

xử lý hình ảnh thời gian thực

Để xử lý hình ảnh từ máy ảnh trong thời gian thực, bạn có thể thêm các thao tác giữa

import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
23 và
import cv2

cap_cam = cv2.VideoCapture[0]
print[type[cap_cam]]
# 

print[cap_cam.isOpened[]]
# True
32

OpenCV có thể phát âm thanh không?

Theo {Reference link}, có vẻ như opencv-4. 5. 5 có thể phát âm thanh cùng với video .

Làm cách nào để phát âm thanh trong OpenCV Python?

OpenCV là thư viện thị giác máy tính. Không hỗ trợ âm thanh . Nếu bạn muốn phát âm thanh, bạn có thể thử ffpyplayer.

Làm cách nào để đọc video trong OpenCV Python?

Để đọc video bằng OpenCV, chúng ta có thể sử dụng cv2. Lớp VideoCapture[filename, apiPreference] . Trong trường hợp bạn muốn đọc video từ một tệp, đối số đầu tiên là đường dẫn đến tệp video [ví dụ:. my_videos/test_video. mp4].

Làm cách nào để trích xuất âm thanh từ video bằng Python?

Chúng tôi cần nhập riêng gói moviepy hoặc lớp trình chỉnh sửa một cách cụ thể. Sau đó, chúng ta cần tạo đối tượng VideoFileClip bằng cách tham chiếu tệp video thông qua tham số . Khi điều này được thực hiện, việc trích xuất âm thanh cũng đơn giản như truy cập thành viên âm thanh của đối tượng VideoFileClip mà chúng ta đã tạo.

Chủ Đề