import PyRVC as RVC
import os
import numpy as np
import cv2
from Utils.Tools import *
def ExtractValidPoint(pm):
pm = pm[~np.isnan(pm[:, 2])]
return pm
def App():
opt = RVC.SystemListDeviceTypeEnum.All
print("RVC Camera devices number:%d" % len(devices))
if len(devices) == 0:
print("Can not find any RVC Camera!")
return 1
print("devices size = %d" % len(devices))
if devices[0].IsFirmwareMatch() == False:
print("device firmware mismatch, Please use RVCManager to upgrade the firmware")
return 1
if x.IsValid() == True:
print("RVC Camera is valid!")
else:
print("RVC Camera is not valid!")
return 1
ret1 = x.Open()
if x.IsOpen() == True:
print("RVC Camera is opened!")
else:
print("Failed to open camera! Please check whether the camera is connected and make sure it is not occupied and supports X1.")
return 1
_, exp_range_min, exp_range_max = x.GetExposureTimeRange()
print("ExposureTime Range:[{}, {}]".format(exp_range_min, exp_range_max))
ret2 = x.Capture()
save_address = "Data"
TryCreateDir(save_address)
if ret2 == True:
pm = np.array(x.GetPointMap(), copy=False).reshape(-1, 3)
valid_pm = ExtractValidPoint(pm)
np.savetxt("Data/valid.xyz", valid_pm)
else:
print("RVC Camera capture failed!")
x.Close()
return 1
x.Close()
return 0
if __name__ == "__main__":
App()