import PyRVC as RVC
import os
import numpy as np
import cv2
from Utils.Tools import *
def App():
opt = RVC.SystemListDeviceTypeEnum.All
if len(devices) == 0:
print("Can not find any RVC Camera!")
return 1
if devices[0].IsFirmwareMatch() == False:
print("device firmware mismatch, Please use RVCManager to upgrade the firmware")
return 1
if x.IsValid() is not True:
print("RVC Camera is not valid!")
return 1
ret1 = x.Open()
if not ret1:
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))
cap_opt = RVC.X1_CaptureOptions()
ret,cap_opt = x.LoadCaptureOptionParameters()
'''
We can use GetAutoNoiseRemovalSetting() function to automatically set noise_removal_distance and
noise_removal_point_number.
However, the recommended practice is to use the auto noise removal function on the RVCManager.exe
to automatically obtain the parameters, then adjust them on the RVCManager.exe, and then set them
here directly by number like the above.
'''
x.GetAutoNoiseRemovalSetting(cap_opt)
ret2 = x.Capture(cap_opt)
save_address = "Data"
TryCreateDir(save_address)
if ret2 == True:
print("RVC Camera capture successed!")
img = x.GetImage()
if img.SaveImage(save_address + "/image.png"):
print("Save image successed!")
else:
print("Save image failed!")
if x.GetPointMap().Save("Data/test.ply", RVC.PointMapUnitEnum.Meter):
print("Save point map successed!")
else:
print("Save point map failed!")
else:
print("RVC Camera capture failed!")
x.Close()
return 1
x.Close()
return 0
if __name__ == "__main__":
App()