| 1234567891011121314151617181920212223242526272829303132 |
- import sys
- import cv2
- import time
- sys.path.insert(0, '/home/admin/dsh/dual_camera_system')
- from dual_camera_system.dahua_sdk import DahuaSDK
- from dual_camera_system.ptz_camera import PTZCamera
- from config.camera import CAMERA_GROUPS, SDK_PATH
- ptz_cfg = CAMERA_GROUPS[0]['ptz']
- lib_path = SDK_PATH['lib_path'] + '/' + SDK_PATH['netsdk']
- sdk = DahuaSDK(lib_path)
- print('SDK init:', sdk.init())
- ptz = PTZCamera(sdk, ptz_cfg)
- print('Connect:', ptz.connect())
- time.sleep(1)
- for x_ratio, y_ratio in [(0.5, 0.5), (0.8, 0.6), (0.2, 0.5)]:
- pan, tilt, zoom = ptz.calculate_ptz_position(x_ratio, y_ratio)
- print(f'({x_ratio},{y_ratio}) -> pan={pan:.1f} tilt={tilt:.1f} zoom={zoom}')
- ptz.goto_exact_position(pan, tilt, zoom)
- time.sleep(5)
- cap = cv2.VideoCapture(ptz_cfg['rtsp_url'], cv2.CAP_FFMPEG)
- ret, frame = cap.read()
- cap.release()
- if ret and frame is not None:
- fname = f'/home/admin/dsh/verify_{x_ratio}_{y_ratio}.jpg'
- cv2.imwrite(fname, frame)
- print('Saved', fname, frame.shape)
- ptz.disconnect()
- sdk.cleanup()
|