修改了深度相机的接口代码
This commit is contained in:
parent
480750cfcc
commit
f437ff4dba
203373
Log/OrbbecSDK.log.txt
203373
Log/OrbbecSDK.log.txt
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -918,12 +918,12 @@ if __name__ == '__main__':
|
|||||||
# 简单的测试事件处理器
|
# 简单的测试事件处理器
|
||||||
@socketio.on('connect')
|
@socketio.on('connect')
|
||||||
def handle_connect():
|
def handle_connect():
|
||||||
print('CLIENT CONNECTED!!!', flush=True)
|
# print('CLIENT CONNECTED!!!', flush=True) # 控制台打印测试已关闭
|
||||||
logger.info('客户端已连接')
|
logger.info('客户端已连接')
|
||||||
|
|
||||||
@socketio.on('disconnect')
|
@socketio.on('disconnect')
|
||||||
def handle_disconnect():
|
def handle_disconnect():
|
||||||
print('CLIENT DISCONNECTED!!!', flush=True)
|
# print('CLIENT DISCONNECTED!!!', flush=True) # 控制台打印测试已关闭
|
||||||
logger.info('客户端已断开连接')
|
logger.info('客户端已断开连接')
|
||||||
|
|
||||||
# @socketio.on('start_video')
|
# @socketio.on('start_video')
|
||||||
|
Binary file not shown.
@ -30,7 +30,7 @@ from database import DatabaseManager
|
|||||||
try:
|
try:
|
||||||
import pykinect_azure as pykinect
|
import pykinect_azure as pykinect
|
||||||
# 重新启用FemtoBolt功能,使用正确的Orbbec SDK K4A Wrapper路径
|
# 重新启用FemtoBolt功能,使用正确的Orbbec SDK K4A Wrapper路径
|
||||||
FEMTOBOLT_AVAILABLE = True
|
FEMTOBOLT_AVAILABLE = False
|
||||||
print("信息: pykinect_azure库已安装,FemtoBolt深度相机功能已启用")
|
print("信息: pykinect_azure库已安装,FemtoBolt深度相机功能已启用")
|
||||||
print("使用Orbbec SDK K4A Wrapper以确保与FemtoBolt设备的兼容性")
|
print("使用Orbbec SDK K4A Wrapper以确保与FemtoBolt设备的兼容性")
|
||||||
except ImportError:
|
except ImportError:
|
||||||
@ -659,11 +659,30 @@ class DeviceManager:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
# 检查是否已经在推流
|
||||||
|
if self.femtobolt_streaming:
|
||||||
|
logger.warning('FemtoBolt深度相机推流已在运行')
|
||||||
|
return True
|
||||||
|
|
||||||
|
# 重置停止事件
|
||||||
|
self.streaming_stop_event.clear()
|
||||||
|
|
||||||
|
# 设置推流标志
|
||||||
self.femtobolt_streaming = True
|
self.femtobolt_streaming = True
|
||||||
|
|
||||||
|
# 启动推流线程
|
||||||
|
self.femtobolt_streaming_thread = threading.Thread(
|
||||||
|
target=self._femtobolt_streaming_thread,
|
||||||
|
daemon=True,
|
||||||
|
name='FemtoBoltStreamingThread'
|
||||||
|
)
|
||||||
|
self.femtobolt_streaming_thread.start()
|
||||||
|
|
||||||
logger.info('FemtoBolt深度相机推流已开始')
|
logger.info('FemtoBolt深度相机推流已开始')
|
||||||
return True
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'FemtoBolt深度相机推流启动失败: {e}')
|
logger.error(f'FemtoBolt深度相机推流启动失败: {e}')
|
||||||
|
self.femtobolt_streaming = False
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def stop_femtobolt_stream(self):
|
def stop_femtobolt_stream(self):
|
||||||
@ -815,7 +834,7 @@ class DeviceManager:
|
|||||||
logger.error(f'摄像头帧推送失败: {e}')
|
logger.error(f'摄像头帧推送失败: {e}')
|
||||||
|
|
||||||
# 控制帧率
|
# 控制帧率
|
||||||
time.sleep(1/30) # 30 FPS
|
# time.sleep(1/30) # 30 FPS
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f'摄像头推流线程异常: {e}')
|
logger.error(f'摄像头推流线程异常: {e}')
|
||||||
@ -833,11 +852,16 @@ class DeviceManager:
|
|||||||
# 获取FemtoBolt帧
|
# 获取FemtoBolt帧
|
||||||
capture = self.femtobolt_camera.update()
|
capture = self.femtobolt_camera.update()
|
||||||
|
|
||||||
# 检查capture是否有效以及color图像是否存在
|
# 检查capture是否有效并获取彩色深度图像
|
||||||
if capture is not None and capture.color is not None:
|
if capture is not None:
|
||||||
# 转换颜色格式
|
ret, color_image = capture.get_transformed_colored_depth_image()
|
||||||
color_image = capture.color
|
if ret and color_image is not None:
|
||||||
|
# 转换颜色格式(如果需要)
|
||||||
|
if len(color_image.shape) == 3 and color_image.shape[2] == 4:
|
||||||
color_image = cv2.cvtColor(color_image, cv2.COLOR_BGRA2BGR)
|
color_image = cv2.cvtColor(color_image, cv2.COLOR_BGRA2BGR)
|
||||||
|
elif len(color_image.shape) == 3 and color_image.shape[2] == 3:
|
||||||
|
# 已经是BGR格式,无需转换
|
||||||
|
pass
|
||||||
|
|
||||||
# 调整帧大小
|
# 调整帧大小
|
||||||
height, width = color_image.shape[:2]
|
height, width = color_image.shape[:2]
|
||||||
|
@ -43,7 +43,7 @@ class AzureKinectImageCapture:
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.device = None
|
self.device = None
|
||||||
self.current_mode = 1 # 1:彩色, 2:深度, 3:红外, 4:彩色深度
|
self.current_mode = 4 # 1:彩色, 2:深度, 3:红外, 4:彩色深度
|
||||||
self.save_counter = 0
|
self.save_counter = 0
|
||||||
|
|
||||||
# 创建保存图像的目录
|
# 创建保存图像的目录
|
||||||
|
Loading…
Reference in New Issue
Block a user