Opencv truyền phát video qua mạng python

chào các bạn. Hướng dẫn hôm nay là Phần 01 của loạt bài học về Raspberry Pi. Bạn sẽ học cách truyền video từ thư viện OpenCV qua wifi. Luồng video này có thể được nhận trên bất kỳ thiết bị di động nào được kết nối với wifi và có thể mở trang web HTML. Thật thú vị, trong hướng dẫn này, chúng tôi không yêu cầu Flask hoặc Django. Tất cả những gì chúng ta cần là hai thư viện;



Cài đặt

1] cv2 Bạn có thể dễ dàng cài đặt opencv dưới dạng cv2 bằng cách làm theo hướng dẫn tại đây

//pyshine.com/How-to-install-OpenCV-in-Rasspberry-Pi/

2] cần có pyshine pyshine để bật các tính năng phát trực tuyến trong hướng dẫn này. Vì vậy, bạn có thể sử dụng phiên bản mới nhất 0. 0. 9 như

pip3 install pyshine==0.0.9

Xin lưu ý rằng bạn có thể dễ dàng quan sát địa chỉ IP hiện tại của Raspberry Pi. Mặc dù mã bên dưới sẽ hoạt động trên bất kỳ PC nào được kết nối với cùng một bộ định tuyến wifi, chúng tôi khuyên bạn nên sử dụng RPi vì nhiều lợi thế của nó trong các ứng dụng cuộc sống hàng ngày

Chúng tôi sẽ sử dụng bảng raspberry pi zero trong hướng dẫn này, nhưng về mặt lý thuyết, bạn có thể sử dụng bất kỳ bảng nào khác miễn là chúng đã cài đặt Python3 và truy cập wifi. Chuẩn wifi được sử dụng trong RPi zero là IEEE 802. 11n, tương đối hỗ trợ khoảng cách dài hơn khoảng 200 m trong Đường ngắm lý thuyết. Tuy nhiên, phạm vi cũng phụ thuộc vào đặc điểm của ăng-ten và tất nhiên là công suất truyền. Chúng tôi sẽ đề cập đến những chi tiết này trong các hướng dẫn sắp tới, vì vậy chúng ta hãy quay lại phần phát trực tuyến

Với mục đích này, chúng tôi cần mã main.py như hình bên dưới, mã này sẽ sử dụng chuỗi tài liệu của trang HTML và chuyển nó đến máy chủ phát trực tuyến thông qua thư viện pyshine. Trang HTML sẽ nhận luồng mjpeg phát theo kiểu nội tuyến

Từ các hướng dẫn trước của chúng tôi, bạn có thể đã biết ý tưởng lấy địa chỉ IP của thiết bị của mình. Giả sử địa chỉ IP của bạn là 192.168.1.1, thì đoạn mã sau là tất cả những gì chúng ta cần để quan sát luồng video trong trình duyệt web của thiết bị khác

chủ yếu. py

Sao chép mã vào khay nhớ tạm

# Part 01 using opencv access webcam and transmit the video in HTML
import cv2
import  pyshine as ps #  pip3 install pyshine==0.0.9
HTML="""


PyShine Live Streaming



PyShine Live Streaming using OpenCV

"""
def main[]: StreamProps = ps.StreamProps StreamProps.set_Page[StreamProps,HTML] address = ['192.168.1.1',9000] # Enter your IP address try: StreamProps.set_Mode[StreamProps,'cv2'] capture = cv2.VideoCapture[0] capture.set[cv2.CAP_PROP_BUFFERSIZE,4] capture.set[cv2.CAP_PROP_FRAME_WIDTH,320] capture.set[cv2.CAP_PROP_FRAME_HEIGHT,240] capture.set[cv2.CAP_PROP_FPS,30] StreamProps.set_Capture[StreamProps,capture] StreamProps.set_Quality[StreamProps,90] server = ps.Streamer[address,StreamProps] print['Server started at','//'+address[0]+':'+str[address[1]]] server.serve_forever[] except KeyboardInterrupt: capture.release[] server.socket.close[] if __name__=='__main__': main[]

Sao chép mã này vào một trang chính. py và dán tệp đó vào Raspberry pi đã bật camera. Để chạy mã

python3 main.py

Sau đó, bạn sẽ thấy những thông báo này trong cửa sổ đầu cuối

Warning! PortAudio library not found
Warning! No module named 'matplotlib'
Warning! No module named 'keras'
Server started at //192.168.1.1:9000

Bỏ qua các cảnh báo và sao chép địa chỉ //192.168.1.1:9000 và dán vào trình duyệt của máy tính hoặc thiết bị di động của bạn trên cùng một mạng wifi. Và thế là xong, bây giờ bạn có thể xem trong trình duyệt camera của RPi đang cung cấp cho bạn những gì

Nhưng đợi một chút, nếu bạn không có bộ định tuyến wifi và bạn muốn kết nối RPi ở chế độ Ad Hoc. Toàn bộ ý tưởng là định cấu hình giao diện wifi của RPI ở chế độ Adhoc, để nó có thể được kết nối với PC/Thiết bị di động mà không cần bất kỳ bộ định tuyến wifi nào. Có, ở chế độ này, chúng tôi có thể tận hưởng các khả năng của Chế độ xem người thứ nhất [FPV] của RPi. Chỉ cần viết một tập lệnh chạy tự động bằng Python sẽ được gọi sau khi RPi được khởi động, chúng ta có thể chạy đoạn mã trên trong đó. Bằng cách này, bạn cũng có thể tận hưởng liên kết FPV điểm tới điểm, nơi video từ RPi được truyền thẳng đến thiết bị di động của bạn. RPi zero chỉ có trọng lượng 9g, điều đó có nghĩa là bạn cũng có thể sử dụng nó với máy bay không người lái. Kích thước khung hình được giữ ở mức 320x240 để giảm độ trễ, điều cần thiết cho các phương tiện/máy bay không người lái dựa trên FPV. Để định cấu hình Raspberry pi ở chế độ Adhoc, vui lòng làm theo hướng dẫn sắp tới của chúng tôi tại đây https. //pyshine. com/How-to-configure-Raspberry-Pi-in-Ad-hoc-wifi-mode/

Chủ Đề