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

OpenCV là một công cụ tuyệt vời để lấy thông tin từ hình ảnh. Trong loạt bài này, chúng ta sẽ tìm hiểu cách xử lý và phân tích hình ảnh để có thể phát hiện chuyển động, mẫu, mẫu và thậm chí đọc văn bản. Tuy nhiên, trước tất cả những điều đó, chúng tôi cần hình ảnh để phân tích và đó là nội dung của bài viết này

Chúng tôi sẽ kiểm tra 4 phương pháp lấy hình ảnh để OpenCV phân tích và từng bước thực hiện từng phương pháp. Cuối cùng, bạn sẽ có thể

  • tải một hình ảnh
  • tải một tập tin video
  • đọc webcam của bạn
  • đọc màn hình của bạn
  • điều chỉnh màu sắc

Chúng ta sẽ sử dụng kiến ​​thức này trong các phần tiếp theo của loạt bài này để tạo ra một số phân tích hay

Loạt

Bài viết này là một phần của loạt bài về xử lý ảnh OpenCV. Tham khảo các bài viết khác

  • Đọc hình ảnh, video, màn hình của bạn và webcam [📍 Bạn đang ở đây. ]
  • Phát hiện và làm mờ khuôn mặt
  • Tiêu diệt Duck Hunt với mẫu phù hợp. tìm hình ảnh trong hình ảnh
  • Tạo máy dò chuyển động
  • Phát hiện hình dạng mà không cần AI [đang được xây dựng; sắp ra mắt]
  • Phát hiện và đọc văn bản từ hình ảnh [đang xây dựng; sắp ra mắt]

Cài đặt

Trong phần này, chúng ta sẽ cài đặt các phần phụ thuộc và khởi động OpenCV. Mục tiêu là có một hình ảnh mà chúng ta có thể sử dụng. Chúng ta chỉ cần cài đặt hai phụ thuộc. OpenCV và PIL [Thư viện hình ảnh Python]. Cài đặt chúng với

pip install opencv-python pillow

Thời gian để đọc [hình ảnh của Sigmund trên unsplash]Đọc hình ảnh

Chúng tôi sẽ bắt đầu bằng cách đọc một hình ảnh từ một tệp. Tiếp theo, chúng ta bắt đầu “quay phim” màn hình của mình. Chúng ta có thể sử dụng điều này để phân tích các hình ảnh mà chúng ta nhìn thấy trên màn hình [chúng ta sẽ tìm hiểu vấn đề này sau]. Cuối cùng, chúng tôi sẽ bắt đầu đọc hình ảnh từ webcam và từ tệp video

1. Đang tải một tập tin

Đầu tiên, chúng tôi nhập OpenCV trên dòng 1 [cv2 là tên mô-đun của OpenCV trong triển khai Python]

import cv2img = cv2.imread[filename="c:/path/to/image.png"]
cv2.imshow['image', img]
cv2.waitKey[0]
cv2.destroyAllWindows[]

Trong dòng 3, chúng tôi tải một hình ảnh và trong dòng tiếp theo, chúng tôi yêu cầu cv2 hiển thị hình ảnh đó cho chúng tôi. Dòng 5 yêu cầu cv2 đợi một lần nhấn nút [bất kỳ nút nào]. Nếu không có dòng này, hình ảnh sẽ bị đóng ngay sau khi cv2 hiển thị. Dòng cuối cùng là để dọn dẹp tất cả các cửa sổ đang mở. Đây là kết quả

Phiên bản BGR của bức tranh phong cảnh tuyệt đẹp này [hình ảnh của Hendrik Conrlissen trên Bapt]

Màu sắc hơi khác, phải không? . Điều này đưa chúng ta đến hoạt động hình ảnh đầu tiên của chúng tôi. chuyển đổi từ BGR sang RGB

img = cv2.imread[filename="c:/path/to/image.png"]
img = cv2.cvtColor[src=img, code=cv2.COLOR_BGR2RGB]
cv2.imshow['image', img]
cv2.waitKey[0]

Với việc thêm một dòng duy nhất, chúng tôi chuyển đổi hình ảnh để chúng tôi còn lại với cách nó được cho là

Tốt hơn nhiều [[hình ảnh của Hendrik Conrlissen trên Bapt]

2. Quay phim màn hình của bạn

Bạn muốn tạo AI cho trò chơi hoặc phân tích dữ liệu video? . Nó khá giống với việc tải một tập tin

import cv2
import numpy as np
from PIL import ImageGrab
while [True]:
screen = np.array[ImageGrab.grab[]]
screen = cv2.cvtColor[src=screen, code=cv2.COLOR_BGR2RGB]
cv2.imshow['my_screen', screen]

# press escape to exit
if [cv2.waitKey[30] == 27]:
break
cv2.destroyAllWindows[]

Trong dòng 6, chúng tôi sử dụng ImageGrab của PIL. phương thức lấy[]; . Chúng tôi sẽ phải chuyển đổi nó thành một mảng Numpy để OpenCV có thể hoạt động với nó. Sau đó các dòng tiếp theo ta làm tương tự như trên. chuyển đổi sang RGB và yêu cầu OpenCV hiển thị hình ảnh cho chúng tôi. Tuy nhiên, trong dòng 9 và 10, chúng tôi yêu cầu OpenCV thoát khỏi vòng lặp khi chúng tôi nhấn phím thoát; . Dòng cuối cùng là dọn dẹp lại

3. đọc webcam

Hãy tăng tốc mọi thứ lên;

cap = cv2.VideoCapture[0]
while True:
ret, frame = cap.read[]
frame = cv2.cvtColor[src=frame, code=cv2.COLOR_BGR2RGB]
cv2.imshow['webcam', frame]
# press escape to exit
if [cv2.waitKey[30] == 27]:
break
cap.release[]
cv2.destroyAllWindows[]

Trong dòng 1, chúng tôi sử dụng phương pháp OpenCV để chụp webcam của mình. Sau đó, chúng tôi sử dụng phương pháp read[] trong dòng 3 để nhận hai biến. ret, đó là True nếu chúng ta có thể đọc các khung và frame. Tiếp theo, chúng tôi chuyển đổi lại màu sắc của mình [lần này là màu xám], hiển thị khung và đợi phím thoát của chúng tôi để dọn dẹp

4. Đọc một tập tin video

Đọc tệp video hoàn toàn giống như đọc webcam của bạn, điểm khác biệt duy nhất là chúng tôi phải chuyển vị trí tệp

cap = vc2.VideoCapture['c:/path/to/my/file.mp4

Phần kết luận

Trong phần đầu tiên của loạt bài này, chúng tôi đã xử lý những kiến ​​thức cơ bản tuyệt đối về việc đưa hình ảnh vào OpenCV. Trong các phần tiếp theo, chúng ta sẽ thực hiện một số phân tích và tiền xử lý đẹp mắt

Đừng quên xem các bài viết khác trong loạt bài này

Nếu bạn có góp ý/làm rõ xin vui lòng bình luận để tôi có thể cải thiện bài viết này. Trong thời gian chờ đợi, hãy xem các bài viết khác của tôi về tất cả các loại chủ đề liên quan đến lập trình như thế này

OpenCV có thể đọc video không?

VideoCapture] Để đọ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.

Làm cách nào để chụp ảnh từ video trong OpenCV Python?

nhập hàm thư viện cv2 #include opencv trong python
#Tạo một đối tượng để giữ tham chiếu quay video camera
vidcap = cv2. Quay Video[0]
#kiểm tra xem kết nối với máy ảnh có thành công không
nếu vidcap. isOpened[]
ret, khung = vidcap. read[] #chụp khung hình từ video trực tiếp

OpenCV có thể đọc những định dạng video nào?

Định dạng video OpenCV

OpenCV VideoCapture hoạt động như thế nào?

Quay video từ máy ảnh . Nó chuyển đổi video thành thang độ xám và hiển thị video . Chúng ta cần tạo một đối tượng VideoCapture để quay video. Nó chấp nhận chỉ mục thiết bị hoặc tên của tệp video.

Chủ Đề