Browse Source

上傳檔案到 'Intel_l515'

fatwolf 3 years ago
parent
commit
e1e643366d
2 changed files with 126 additions and 0 deletions
  1. 39 0
      Intel_l515/l515.py
  2. 87 0
      Intel_l515/l515_socket.py

+ 39 - 0
Intel_l515/l515.py

@@ -0,0 +1,39 @@
+## License: Apache 2.0. See LICENSE file in root directory.
+## Copyright(c) 2015-2017 Intel Corporation. All Rights Reserved.
+
+###############################################
+##      Open CV and Numpy integration        ##
+###############################################
+
+import pyrealsense2 as rs
+import numpy as np
+import cv2
+
+pipeline = rs.pipeline()
+config = rs.config()
+config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
+config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
+
+pipeline.start(config)
+
+try:
+    while True:
+        frames = pipeline.wait_for_frames()
+        depth_frame = frames.get_depth_frame()
+        color_frame = frames.get_color_frame()
+        if not depth_frame or not color_frame:
+            continue
+
+        depth_image = np.asanyarray(depth_frame.get_data())
+        color_image = np.asanyarray(color_frame.get_data())
+
+        depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
+
+        images = np.hstack((color_image, depth_colormap))
+
+        cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
+        cv2.imshow('RealSense', images)
+        cv2.waitKey(1)
+
+finally:
+    pipeline.stop()

+ 87 - 0
Intel_l515/l515_socket.py

@@ -0,0 +1,87 @@
+## License: Apache 2.0. See LICENSE file in root directory.
+## Copyright(c) 2015-2017 Intel Corporation. All Rights Reserved.
+
+###############################################
+##      Open CV and Numpy integration        ##
+###############################################
+
+import pyrealsense2 as rs
+import numpy as np
+import cv2
+import socket
+import math
+import pickle
+import sys
+import time
+import datetime
+
+max_length = 65000
+host =  "192.168.50.158"
+port = 5000
+
+sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+pipeline = rs.pipeline()
+config = rs.config()
+config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
+config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
+
+pipeline.start(config)
+
+try:
+    while True:
+        frames = pipeline.wait_for_frames()
+        depth_frame = frames.get_depth_frame()
+        color_frame = frames.get_color_frame()
+        if not depth_frame or not color_frame:
+            continue
+
+        depth_image = np.asanyarray(depth_frame.get_data())
+        color_image = np.asanyarray(color_frame.get_data())
+
+        depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
+
+        text_depth = "depth value of point is " + str(
+        np.round(depth_frame.get_distance(320, 240), 4)) + "meter(s)"
+        color_image = cv2.circle(color_image, (320, 240), 1, (0, 255, 255), 10)
+        color_image = cv2.putText(color_image, text_depth, (10, 20), cv2.FONT_HERSHEY_PLAIN, 2, (0, 0, 255), 1,
+                                  cv2.LINE_AA)
+
+        images = np.hstack((color_image, depth_colormap))
+        images = cv2.resize(images, (640,320),interpolation=cv2.INTER_AREA)
+        retval, buffer = cv2.imencode(".jpg", images)
+
+        if retval:
+            # convert to byte array
+            buffer = buffer.tobytes()
+            # get size of the frame
+            buffer_size = len(buffer)
+
+            num_of_packs = 1
+            if buffer_size > max_length:
+                num_of_packs = math.ceil(buffer_size / max_length)
+
+            frame_info = {"packs": num_of_packs}
+            # send the number of packs to be expected
+            print("Number of packs:", num_of_packs)
+            sock.sendto(pickle.dumps(frame_info), (host, port))
+
+            left = 0
+            right = max_length
+
+            for i in range(num_of_packs):
+                print("left:", left)
+                print("right:", right)
+
+                # truncate data to send
+                data = buffer[left:right]
+                left = right
+                right += max_length
+
+                # send the frames accordingly
+                sock.sendto(data, (host, port))
+
+
+
+
+finally:
+    pipeline.stop()