first commit

This commit is contained in:
2025-07-29 13:16:30 +08:00
commit dca51db4eb
145 changed files with 721268 additions and 0 deletions

149
Vision/tool/CameraRVC.py Normal file
View File

@ -0,0 +1,149 @@
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project my_work
@File camera.py
@IDE PyCharm
@Author hjw
@Date 2024/8/13 11:34
'''
import PyRVC as RVC
import numpy as np
class camera_rvc:
def __init__(self):
self.caminit_isok = False
RVC.SystemInit()
# Choose RVC X Camera type (USB, GigE or All)
opt = RVC.SystemListDeviceTypeEnum.GigE
# Scan all RVC X Camera devices.
ret, devices = RVC.SystemListDevices(opt)
print("RVC X Camera devices number:%d" % len(devices))
# Find whether any RVC X Camera is connected or not.
if len(devices) == 0:
print("Can not find any RVC X Camera!")
RVC.SystemShutdown()
else:
print("devices size = %d" % len(devices))
# Create a RVC X Camera and choose use left side camera.
self.x = RVC.X1.Create(devices[0], RVC.CameraID_Left)
# x = RVC.X1.Create(devices[0], RVC.CameraID_Right)
# Test RVC X Camera is valid or not.
if self.x.IsValid() == True:
print("RVC X Camera is valid!")
# Open RVC X Camera.
ret1 = self.x.Open()
# Test RVC X Camera is opened or not.
if ret1 and self.x.IsOpen() == True:
print("RVC X Camera is opened!")
self.caminit_isok = True
else:
print("RVC X Camera is not opened!")
RVC.X1.Destroy(self.x)
RVC.SystemShutdown()
self.caminit_isok = False
else:
print("RVC X Camera is not valid!")
RVC.X1.Destroy(self.x)
RVC.SystemShutdown()
self.caminit_isok = False
def get_img(self):
""
'''
:param api: None
:return: ret ,img
'''
if self.caminit_isok == False:
return 0, None
else:
# Capture a point map and a image.
ret2 = self.x.Capture()
# Create saving address of image and point map.
if ret2 == True:
print("RVC X Camera capture successed!")
# Get image data and image size.
img = self.x.GetImage()
# Convert image to array and save it.
img = np.array(img, copy=False)
return 1, img
else:
print("RVC X Camera capture failed!")
self.x.Close()
RVC.X1.Destroy(self.x)
RVC.SystemShutdown()
return 0, None
def get_point_map(self):
""
'''
:param api: None
:return: img
'''
if self.caminit_isok == False:
return 0, None
else:
# Capture a point map and a image.
ret2 = self.x.Capture()
# Create saving address of image and point map.
if ret2 == True:
print("RVC X Camera capture successed!")
# Convert point map (m) to array and save it.
pm = np.array(self.x.GetPointMap(), copy=False)
return 1, pm
else:
print("RVC X Camera capture failed!")
self.x.Close()
RVC.X1.Destroy(self.x)
RVC.SystemShutdown()
return 0, None
def get_img_and_point_map(self):
""
'''
:param api: None
:return: ret , img, point_map
'''
if self.caminit_isok == False:
return 0, None, None
else:
# Capture a point map and a image.
ret2 = self.x.Capture()
# Create saving address of image and point map.
if ret2 == True:
print("RVC X Camera capture successed!")
# Get image data and image size.
img = self.x.GetImage()
# Convert image to array and save it.
img = np.array(img, copy=False)
# Convert point map (m) to array and save it.
pm = np.array(self.x.GetPointMap(), copy=False)
return 1, img, pm
else:
print("RVC X Camera capture failed!")
self.x.Close()
RVC.X1.Destroy(self.x)
RVC.SystemShutdown()
return 0, None, None
def release(self):
if self.caminit_isok == False:
RVC.SystemShutdown()
else:
RVC.X1.Destroy(self.x)
RVC.SystemShutdown()